簡體   English   中英

帶有整數輸入的 Python Subprocess.run

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM