将 Python shell 输出写入文件

发布于 2024-12-09 16:14:03 字数 277 浏览 0 评论 0原文

很简单的问题。我正在使用 IDLE Python shell 来运行我的 Python 脚本。我使用以下类型的结构

import sys
sys.argv = ['','fileinp']
execfile('mypythonscript.py')

有没有一种简单的方法将结果输出到文件? 一样的东西

execfile('mypythonscript.py') > 'output.dat'

像谢谢

Very simple question. I am using the IDLE Python shell to run my Python scripts. I use the following type of structure

import sys
sys.argv = ['','fileinp']
execfile('mypythonscript.py')

Is there a simple way of outputting the results to a file? Something like

execfile('mypythonscript.py') > 'output.dat'

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

野生奥特曼 2024-12-16 16:14:03
$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
[GCC 4.4.3] on linux2

>>> import sys
>>> sys.displayhook(stdout)
<open file '<stdout>', mode 'w' at 0x7f8d3197a150>
>>> x=open('myFile','w')
>>> sys.displayhook(x)
<open file 'myFile', mode 'w' at 0x7fb729060c00>
>>> sys.stdout=x
>>> print 'changed stdout!'
>>> x.close()
$ cat myFile 
changed stdout!

注意:更改这些对象不会影响 os 模块中 os.popen()、os.system() 或 exec*() 系列函数执行的进程的标准 I/O 流。
所以

>>> import os
>>> os.system("./x")
1 #<-- output from ./x
0 #<-- ./x's return code
>>> quit()
$
$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
[GCC 4.4.3] on linux2

>>> import sys
>>> sys.displayhook(stdout)
<open file '<stdout>', mode 'w' at 0x7f8d3197a150>
>>> x=open('myFile','w')
>>> sys.displayhook(x)
<open file 'myFile', mode 'w' at 0x7fb729060c00>
>>> sys.stdout=x
>>> print 'changed stdout!'
>>> x.close()
$ cat myFile 
changed stdout!

NOTE: Changing these objects doesn’t affect the standard I/O streams of processes executed by os.popen(), os.system() or the exec*() family of functions in the os module.
So

>>> import os
>>> os.system("./x")
1 #<-- output from ./x
0 #<-- ./x's return code
>>> quit()
$
無處可尋 2024-12-16 16:14:03

文档如此说道:

标准输出定义为内置模块sys中名为stdout的文件对象。

所以你可以像这样改变标准输出:

import sys
sys.stdout = open("output.dat", "w")

So sayeth the documentation:

Standard output is defined as the file object named stdout in the built-in module sys.

So you can change stdout like so:

import sys
sys.stdout = open("output.dat", "w")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文