我正在编写一段代码,其中我正在生成一些规则。下面是我代码的最后几行:
for _,i in enumerate(range(no_of_label+1)):
if _ in temp_key:
rule_pro.append(temp_lab[_])
elif _ == no_of_label:
rule_pro.append(class_)
else:
rule_pro.append("*")
print(*rule_pro, sep = ",")
现在,在代码之间,我还在stdout中生成3-4个输出。但是我需要将这个rule_pro
写入一个文件,比如说Outputfile
。每当我试图将这个东西从stdout复制到那个文件时,stdout中的所有东西都会被复制,但我只需要将rule_pro
放入一个文件中。我该怎么做?请帮忙!
Edit_1:
with open('Output_rule_c45_rise_format', 'w') as file_handler:
file_handler.write(str(rule_pro))
这是有效的,但我没有得到我想要的格式,这是我在stdout
中使用print(*rule_pro, sep = ",")
得到的。
stdout
的输出类似于:
*,*,1,*,0
*,*,2,2,1
*,*,*,3,1
*,*,*,4,2
*,*,3,*,2
但是修改代码,在输出文件中,我得到的是:
['*', '*', '1', '*', '0']['*', '*', '2', '2', '1']['*', '*', '*', '3', '1']['*', '*', '*', '4', '2']['*', '*', '3', '*', '2']
但我不需要这些第三个括号,我需要把它们单独打印出来。我需要做哪些更改?
第2版:
现在我正在做:
for rule in rule_pro:
#rule_line = ','.join(map(str, rule))
#rule_line = "n".join(map(str, rule))
rule_line = "n".join(map(str, rule)) + 'n'
file_handler.write(rule_line)
但这给出的输出为:
*
*
1
*
0
*
*
2
2
1
*
*
*
3
1
*
*
*
4
2
*
*
3
*
2
编辑1之后。
您似乎正在将列表的字符串表示形式写入文件中。您应该首先尝试从列表中创建一个字符串。
下面的代码应该可以帮助您转换它。它在列表中进行迭代并获得每一项。在这种情况下,你似乎有一个列表,因此你的项目就是一个列表。之后,通过使用规则(即列表(中的每个项来连接/创建字符串,然后将其保存在变量中。rule_line是一个字符串,可以写入到文件中。添加了一行换行符,使其位于文件的下一行。
参考
with open('Output_rule_c45_rise_format', 'w') as file_handler:
for rule in rule_pro:
rule_line = ','.join(map(str, rule)) + 'n'
file_handler.write(rule_line)
假设rule_pro是一个列表列表,这应该会起作用。
编辑2。
缩进错误是空格和/或制表符的一致性问题。请尝试在代码中仅使用制表符或仅使用4个空格。不要在缩进中混用制表符和空格。
如果rule_pro是一个包含列表的列表,它会是这样的。
rule_pro = [['*', '*', '1', '*', '0'],
['*', '*', '2', '2', '1'],
['*', '*', '*', '3', '1'],
['*', '*', '*', '4', '2'],
['*', '*', '3', '*', '2']]
您可以通过尝试以下操作来检查您的线路是否正确:
for rule in rule_pro:
rule_line = ','.join(map(str, rule)) + 'n'
print(rule_line)
请检查您的rule_pro列表是否与我心目中的rule_pro相似。
检查文档:Python文件处理:https://www.w3schools.com/python/python_file_handling.asp
Python文件打开:https://www.w3schools.com/python/python_file_open.asp
Python文件写入:https://www.w3schools.com/python/python_file_write.asp
Python文件删除:https://www.w3schools.com/python/python_file_remove.asp