方法一
在主程序入口处,添加如下代码。
import sys
f = open(‘myprint.txt’, ‘a’)
sys.stdout = f
其中,a是追加,也可以用w。然后在代码中可以尽情print,不需要设置file属性,内容就自动写入文件了,但是不会在打印。
print(‘print something !’)
f.close()
最后记得要关闭文件。
方法二
import os
import sys
class TextArea(object):
def __init__(self):
self.buffer = []
def write(self, *args, **kwargs):
self.buffer.append(args)
stdout = sys.stdout
sys.stdout = TextArea()
print('some things')
print('some things!')
print('some things!!')
printInfoRun, sys.stdout = sys.stdout, stdout
printInfoAll = printInfoRun.buffer
os.chdir(os.getcwd())
f = open('./myprint.txt', 'w')
for each in printInfoAll:
f.write(each[0])
f.close()
记得关闭文件。