Как мне сделать код, который выполняет файл Python (не сам) с перенаправлением ввода? - PullRequest
0 голосов
/ 07 ноября 2019

Я хочу создать call.py, который будет выполнять main.py с перенаправлением ввода input.txt.

Кроме того, я не хочу менять код main.py.

Я хочу сделать следующее:

call.py

exec(open("./main.py").read() < input.txt)

Конечно, я знаю, что этот код не работает.

main.py

name=input()
x=int(input())
print(name +" has chosen "+str(x)+".")

input.txt

Alice
2

Пожалуйста, дайте мне совет.

Ответы [ 2 ]

0 голосов
/ 07 ноября 2019

Достаточно просто написать ниже.

os.system('main.py < input.txt')

Я написал глупый вопрос.

0 голосов
/ 07 ноября 2019

Для этого вы можете использовать модуль subprocess. Пример использования показан ниже.

В call.py :

proc = subprocess.Popen ("main.py input.txt", stdout =subprocess.PIPE, stderr = subprocess.PIPE)

Все, что вам нужно сделать в main.py , это прочитать содержимое input.txt с помощьюмодуль sys. Чтобы извлечь input.txt из командной строки, используйте sys.argv[1].

...