在文件中打印输出,而不是在python中打印stdout



我正在编写一段代码,其中我正在生成一些规则。下面是我代码的最后几行:

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

最新更新