Python перенаправить стандартный ввод в дескриптор файла - PullRequest
0 голосов
/ 25 апреля 2018

Допустим, у меня есть файл 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 = 1, b = 2, c = [3, 4, 5].

Но когда программа сталкивается с input(), она просто застревает там вместо чтения строки из файлового дескриптора.

Могу ли я спросить, как мне исправить эту программу?

Спасибо

1 Ответ

0 голосов
/ 30 апреля 2018

Эй, ребята, я обнаружил проблему здесь: это потому, что Spyder Python не поддерживает перенаправление ввода.

См. Чтение стандартного ввода в Spyder

...