在python中编写文本文件时出错

时间:2014-12-29 00:23:15

标签: python file

我正在编写一个包含以下代码的文本文件(代码中的pl是列表列表):

out_file = open("par.txt", 'w')
out_file.write("id\ttrans_id\ttype\tstatus\tname\ttrans_type\ttrans_status\ttrans_name\n")
for lst in pl:
    out_file(lst[0].split()[1],"\t",lst[1].split()[1],"\t",lst[2].split()[1],"\t",lst[3].split()[1],"\t",lst[4].split()[1],"\t",lst[5].split()[1],"\t",lst[6].split()[1],"\t",lst[7].split()[1])
out_file.close()

但是它给出了这个错误:

Traceback (most recent call last):
  File "test.py", line 25, in <module>
    out_file(lst[0].split()[1],"\t",lst[1].split()[1],"\t",lst[2].split()[1],"\t",lst[3].split()[1],"\t",lst[4].split()[1],"\t",lst[5].split()[1],"\t",lst[6].split()[1],"\t",lst[7].split()[1])
TypeError: 'file' object is not callable

2 个答案:

答案 0 :(得分:1)

您需要将循环更改为:

for lst in pl:
    out_file.write('\t'.join(x.split()(1) for x in lst))
    out_file.write('\n')

答案 1 :(得分:-2)

试试这个:

with open("par.txt", "a+") as f:
    f.write("id\ttrans_id\ttype\tstatus\tname\ttrans_type\ttrans_status\ttrans_name\n")
    for lst in pl:
        f.write(("{}\t"*8).format(lst[0].split()[1],lst[1].split()[1],lst[2].split()[1],lst[3].split()[1],lst[4].split()[1],lst[5].split()[1],lst[6].split()[1],lst[7].split()[1]))
  

它不会覆盖您的文件。您应该更改 8 变量列表的长度,这是我们不知道的列表。

示例输出:

enter image description here