[英]Python Subprocess.run with integer input
我是一個python初學者,練習控制文件。
我創建了一個簡單的第一個 python 文件,如下所示:
l1 = ['Bob', 'Eric', 'Dimitar', 'Kyle']
n = input('Enter no. of persons: ')
print(l1[int(n)])
我從另一個 python 文件運行這個文件,如下所示:
import subprocess
subprocess.run("python random.py", shell=True )
這有效,但它運行第一個 python 文件而不提示輸入。 有什么辦法可以將第二個腳本中的“n”作為輸入發送到第一個腳本嗎?
類似於此:
subprocess.run("python random.py", shell=True ,**input(n) = 2** )
使用子流程,您無法控制將輸入放入哪個變量(假設這是您對input(n) = 2
的意圖),但您可以控制子流程本身的輸入。 例如runner.py
文件:
import subprocess
inp = b'2'
subprocess.run("python random.py", shell=True, input=inp)
然后運行它會導致:
$ python runner.py
Enter no. of persons: Dimitar
請注意,輸入必須是bytes
類型,或指定編碼。 另外,請注意換行符(此示例只需要一個輸入)。
在此處閱讀 Python 文檔中有關run()
方法的更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.