import hashlib
path = '指定目录'
def calc_md5(file_obj):
md5 = hashlib.md5()
while True:
chunk = file_obj.read(1024**2) # 1K
if not chunk:
return md5.hexdigest()
md5.update(chunk)
if __name__ == '__main__':
# 只遍历本目录,不遍历子目录
with open('md5.txt', 'w') as fout:
for file_name in os.listdir(path):
file_path = os.path.join(path, file_name)
if os.path.isfile(file_path):
with open(file_path, 'rb') as fin:
info = '%s %s' % (file_name, calc_md5(fin))
print(info)
fout.write(info + '\n')
首先导入sys模块import sys
然后在打算把输出数据写入文件的代码之前加上以下代码
output=sys.stdout
outputfile=open(filename,'w')
sys.stdout=outputfile
上面的filename表示输出文件
程序结束或恢复成正常输出时加上以下代码
outputfile.close()
sys.stdout=output
恢复输出为开始保存的正常输出值
在平时工作中,有时我们需要将控制台输出保存到文件
缺点:只能保存到文件,但控制台无输出
将控制台输出的同时即时保存到文件
print 函数中的 file 参数, file=f ,输出到文件; file=sys.stdout ,输出到终端; flush=True ,即时刷新
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)