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 语句
我想在 .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 语句