It says "ValueError: I/O operation on closed file" but i opened it

It says "ValueError: I/O operation on closed file" but i opened it

我想在 .txt 文件中获取控制台输出。

这是我的:

import sys
print('some text')
a='moretext.1'.split('.')
sys.stdout = open('output.txt', 'w')
print(a)
sys.stdout.close()

这里可以,但在我的程序中不行。 有人知道它可能是什么吗? 它说它在第 2 行或某处

而且我已经在 Whosebug 和互联网上进行了搜索,但我找不到任何东西

不要乱用 sys.stdout,而是 open 文件并像这样打印到它:

print('some text')
a='moretext.1'.split('.')
with open('output.txt', 'w') as out:
    print(a, file=out)

多种方法

1--

python3 myprogram.py > output.txt

2--

import sys
print('some text')
a='moretext.1'.split('.')
output = open('output.txt', 'w')
print(a, file=output)
output.close()

3--

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__

4--

正如@Timur Shtatland 建议的那样,您可以使用 with 语句