简而言之,我想将打印重定向到Python 3.5中的.txt文件 我想用一个虚拟的例子来更好地解释这个问题:
parents= [1,2]
for i in parents:
print("Parent #{}:".format(i))
for j in range(3):
print ('Child: ', j+1)
这将打印以下内容:
Parent #1:
Child: 1
Child: 2
Child: 3
Parent #2:
Child: 1
Child: 2
Child: 3
我希望能够将这一行直接写入文件中。 我知道如何从命令行执行此操作,但我更愿意将其包含在代码中。
答案 0 :(得分:2)
您可以为file
来电提供print()
参数。请read the docs:
with open('test.txt', 'w', encoding='utf-8') as f:
print(123, True, 'blah', file=f)
默认file
为sys.stdout,可以更改:
import sys
sys.stdout = open('test.txt', 'w', encoding='utf-8')
print(123, True, 'blah') # prints to test.txt
在后一种情况下,您可以使用sys.__stdout__访问原始标准输出文件。
而且,正如其他人指出的那样,您可以在文件对象上使用write()
方法,但print()
确实具有write()
缺少的某些额外功能。
答案 1 :(得分:0)
f = open('file.txt', 'a')
parents= [1,2]
for i in parents:
f.write("Parent #{}:".format(i) + '\n')
for j in range(3):
f.write('Child: ', j+1, '\n')
f.close()