Python将标准输入重定向到文件描述符

时间:2018-04-25 07:17:13

标签: python stdin file-descriptor

假设我有一个文件data.txt

1
2
3 4 5

我有一个Python程序:

fd = open('data.txt')
sys.stdin = fd

a= int(input()) # expect to be 1
b= int(input()) # expect to be 2
c = [int(e) for e in input().strip().split(' ')] # expect to be [3, 4, 5]

sys.stdin = sys.__stdin__    # Reset the stdin to its default value

通过运行此脚本,我希望有3个变量a = 1b = 2c = [3, 4, 5]

但是当程序运行到input()时,它只是停留在那里,而不是从文件描述符中读取一行。

请问我该如何纠正这个程序?

谢谢,

1 个答案:

答案 0 :(得分:0)

嘿伙计们我在这里发现了问题:这是因为Spyder Python不支持重定向输入。

请参阅Reading stdin in Spyder