mian.py越写越复杂,最终控制台输出过多,旧的输出总是被新的输出推了上去,十分不利于调试。于是想着让所有的print语句的输出都保存到一个文件中,且这个文件的名称要根据当前的输出实时生成。
import sys
import datetime
def test_fun():
print("测试一下主函数调用的函数的语句能否写入")
def main():
# 获取当前的日期和时间
now = datetime.datetime.now()
# 格式化日期和时间,生成文件名
# 格式为 'output_MMDDHHMM.txt'
filename = now.strftime("output_%m%d%H%M.txt")
file = open(filename, 'w', encoding="utf-8")
try:
# 保存原来的stdout
original_stdout = sys.stdout
# 将stdout重定向到文件
sys.stdout = file
print("这句话本来应该输出在终端")
test_fun()
finally:
# 恢复原来的stdout
sys.stdout = original_stdout
# 关闭文件
file.close()
if __name__ == "__main__":
main()
产生了文件output_01191104.txt
该文件的内容如下
这句话本来应该输出在终端
测试一下主函数调用的函数的语句能否写入
?