在python中,有没有办法把所有的打印输出保存到一个txt文件中?假设我的代码中有这两行,我想把打印输出保存到一个名为output.txt
的文件中。
print ("Hello stackoverflow!")
print ("I have a question.")
我希望output.txt
文件包含
Hello stackoverflow!
I have a question.
在python中,有没有办法把所有的打印输出保存到一个txt文件中?假设我的代码中有这两行,我想把打印输出保存到一个名为output.txt
的文件中。
print ("Hello stackoverflow!")
print ("I have a question.")
我希望output.txt
文件包含
Hello stackoverflow!
I have a question.
9条答案
按热度按时间unftdfkk1#
给予
print
一个file
关键字参数,参数的值是一个文件流,最好的做法是用open
函数打开文件,使用with
块,这将确保文件在块的末尾自动关闭:从关于
print
的Python文档中:file
参数必须是具有write(string)
方法的对象;如果不存在,则使用None
、sys.stdout
。以及
open
的文档:打开
file
,返回对应的文件对象,如果文件打不开,则引发OSError
。作为
open
的第二个参数的"a"
意味着“append”-换句话说,文件的现有内容不会被覆盖。如果你想在with
块的开头覆盖文件,使用"w"
。with
代码块很有用,因为如果不这样做,您需要记住自己像这样关闭文件:uemypmqf2#
您可以将标准输出重定向到文件“output.txt”中:
pdkcd3nj3#
另一个根本不需要更新Python代码的方法是通过控制台重定向。
基本上,像往常一样使用Python脚本
print()
,然后从命令行调用脚本并使用命令行重定向。output.txt
文件现在将包含Python脚本的所有输出。处理意见;对于Windows,请将正斜杠更改为反斜杠。
(i.e.
.\myscript.py
)ukxgm1gy4#
使用日志记录模块
获取记录器:
并开始记录/输出:
qoefvg9y5#
另一个变体可以是...请确保随后关闭文件
vmpqdwk36#
假设我的输入文件是"input.txt",输出文件是"output.txt"。
让我们考虑输入文件有细节要读:
代码:
因此,这将从输入文件读取,输出将显示在输出文件中。
有关详细信息,请参见https://www.geeksforgeeks.org/inputoutput-external-file-cc-java-python-competitive-programming/
ep6jt1vc7#
确保导入 sys 模块。打印您想要写入和保存的任何内容。在 sys 模块中,我们有 stdout,它接受输出并存储它。然后关闭 sys.stdout。这将保存输出。
khbbv19g8#
从Python 3.4开始,我们有redirect_stdout:
0h4hbjxa9#
可以直接将函数的返回输出追加到文件中。