Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 它说:";ValueError:对关闭的文件执行I/O操作;但是我打开了它_Python_Python 3.x_Sys - Fatal编程技术网

Python 它说:";ValueError:对关闭的文件执行I/O操作;但是我打开了它

Python 它说:";ValueError:对关闭的文件执行I/O操作;但是我打开了它,python,python-3.x,sys,Python,Python 3.x,Sys,我想以.txt文件的形式获取控制台输出 这就是我所拥有的: import sys print('some text') a='moretext.1'.split('.') sys.stdout = open('output.txt', 'w') print(a) sys.stdout.close() 在这里它可以工作,但在我的程序中却不行。 有人知道会是什么吗? 它说它在第二行或者其他什么地方 我已经在Stackoverflow和internet上搜索过了,但我找不到任何东西不要弄乱sys.s

我想以.txt文件的形式获取控制台输出

这就是我所拥有的:

import sys
print('some text')
a='moretext.1'.split('.')
sys.stdout = open('output.txt', 'w')
print(a)
sys.stdout.close()
在这里它可以工作,但在我的程序中却不行。 有人知道会是什么吗? 它说它在第二行或者其他什么地方


我已经在Stackoverflow和internet上搜索过了,但我找不到任何东西

不要弄乱
sys.stdout
,而是像这样将文件打印到它:

print('some text')
a='moretext.1'.split('.')
with open('output.txt', 'w') as out:
    print(a, file=out)
有多种方法可以做到这一点 1-- 2-- 3-- 4--
正如@Timur Shtaland建议您可以使用with语句来解决stackoverflow问题,您需要提供一个可以解决的问题。“这里有一些工作代码,但我的github不工作,为什么?”与标准相差甚远。取出不起作用的代码块,并将其作为问题与预期行为和观察到的行为一起发布。您可能在关闭文件后试图打印某些内容
sys.stdout.close()。(你需要像
sys.stdout=sys.\uu stdout\uuuu
这样的东西来做。重新分配到
sys.stdout
不是你通常首先要做的事情。)@PaulBecotte是的,我知道对不起,我是新来的,我只是不知道问题出在哪里。这就是为什么我写这篇文章,如果有人有时间的话,它是否会帮助更多。我已经搜索这个问题好几个小时了,现在我正在使用Python,有几个月了,我对它了解不多,所以我很抱歉不需要
stdout
sys.\uu stdout\uu
为您保留原始文件句柄。
python3 myprogram.py > output.txt
import sys
print('some text')
a='moretext.1'.split('.')
output = open('output.txt', 'w')
print(a, file=output)
output.close()
import sys
print('some text')
a='moretext.1'.split('.')
stdout = sys.stdout
sys.stdout = open('output.txt', 'w')
print(a)
sys.stdout.close()
sys.stdout = sys.__stdout__