Python List输出故障排除

时间:2014-01-03 15:05:09

标签: python list tuples output

我有一个如下列表,并尝试将其写为txt文件作为制表符分隔。

final_out = [(['2893541', 'OVERALL', 'friendly and genuine.'], 77), (['2893382', 'SPEED', 'timely manner."'], 63)]

我的输出语句是但它没有消除方括号:

fh = open("text.txt", "w")
fh.write('\n'.join('%s %s' % x for x in final_out))
fh.close()

我想要的输出是:

2893541 OVERALL friendly and genuine.   77 
2893382 SPEED   timely manner.  63

提前非常感谢你。

3 个答案:

答案 0 :(得分:1)

  1. 打开文件时使用with自动清理文件句柄。
  2. 您仍然会使用方括号,因为您正在将列表转换为字符串。
  3. 您实际上并未在任何地方使用标签
  4. 我的建议是使用csv模块,它也会为你处理转义(默认情况下使用引号)。

    import csv
    
    final_out = [(['2893541', 'OVERALL', 'friendly and genuine.'], 77), (['2893382', 'SPEED', 'timely manner."'], 63)]
    
    with open('text.txt', 'wb') as fh:
        writer = csv.writer(fh, delimiter='\t')
    
        for row in final_out:
            writer.writerow(row[0] + [row[1]])
    

答案 1 :(得分:0)

您可以像这样修改写行:

fh.write('\n'.join('%s %s' % (' '.join(a), b) for a, b in final_out))

答案 2 :(得分:0)

您可以尝试使用此方法:

final_out = [(['2893541', 'OVERALL', 'friendly and genuine.'], 77), (['2893382', 'SPEED', 'timely manner."'], 63)]
fh = open("text.txt", "w")

for final_out_item in final_out:
    first_part = '\t'.join(final_out_item[0])
    fh.write("%s\t%s\n" % (first_part, final_out_item[1]))

fh.close()