Python 它说:";ValueError:对关闭的文件执行I/O操作;但是我打开了它
我想以.txt文件的形式获取控制台输出 这就是我所拥有的: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
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__