gpt4 book ai didi

python - 在 I/O 重定向中执行 Python 脚本时出现 EOFError

转载 作者:太空宇宙 更新时间:2023-11-04 09:30:47 25 4
gpt4 key购买 nike

如果我用这段代码在 Python 中创建一个程序“prog.py”:

#!/usr/bin/python3.3
# -*-coding:Utf-8 -*

while True:
number = int(input())
print(number * 2)

我有一个文件“numbers.txt”:

1
2
3
4
5
6
7
8
9
10

然后我这样运行它:

chmod +x prog.py
cat numbers.txt | ./prog.py

我明白了:

2
4
6
8
10
12
14
16
18
20
Traceback (most recent call last):
File "./prog.py", line 5, in <module>
number = int(input())
EOFError: EOF when reading a line

为什么会出现这个错误?

最佳答案

这是预料之中的;您尝试使用 input 从标准输入读取而不检查是否已到达文件末尾。但是,最好直接遍历文件 sys.stdin,而不是重复调用 input

import sys

for line in sys.stdin:
number = int(line)
print(number * 2)

当您到达文件末尾时,迭代将自动停止,因此无需明确检查它。

关于python - 在 I/O 重定向中执行 Python 脚本时出现 EOFError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31628642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com