将打印输出写入文件(python)

时间:2013-04-24 11:37:17

标签: python output

我将打印输出写入文件时遇到问题。

我的代码:

list1 = [2,3]
list2 = [4,5]
list3 = [6,7]

for (a, b, c) in zip(list1, list2, list3):
    print a,b,c

我得到的输出是:

>>> 
2 4 6
3 5 7
>>> 

但是我在保存此输出方面遇到了问题,我试过了:

fileName = open('name.txt','w')
for (a, b, c) in zip(list1, list2, list3):
    fileName.write(a,b,c)

和各种组合,如fileName.write(a + b + c)或(abc),但我不成功......

干杯!

4 个答案:

答案 0 :(得分:1)

问题是,write方法需要string,并且您需要int

尝试使用formatwith

with open('name.txt','w') as fileName:
    for t in zip(list1, list2, list3):
        fileName.write('{} {} {}'.format(*t))

答案 1 :(得分:0)

如何使用格式字符串:

fileName.write("%d %d %d" % (a, b, c))

答案 2 :(得分:0)

使用with。可能您的文件句柄未关闭或正确刷新,因此文件为空。

list1 = [2,3]
list2 = [4,5]
list3 = [6,7]

with open('name.txt', 'w') as f:
    for (a, b, c) in zip(list1, list2, list3):
        f.write(a, b, c)

您还应注意,这不会在每次写入结束时创建新行。要使文件的内容与您打印的内容相同,您可以使用以下代码(选择一种写入方法):

with open('name.txt', 'w') as f:
    for (a, b, c) in zip(list1, list2, list3):
        # using '%s' 
        f.write('%s\n' % ' '.join((a, b, c)))
        # using ''.format()
        f.write('{}\n'.format(' '.join((a, b, c))))

答案 3 :(得分:0)

您可以使用print >> file语法:

with open('name.txt','w') as f:
    for a, b, c in zip(list1, list2, list3):
        print >> f, a, b, c