【发布时间】:2025-12-08 12:45:01
【问题描述】:
我正在使用子进程从下面调用一个 python 脚本。用户从命令行选择使用 raw_input 打开哪个文件
import optparse
import subprocess
import readline
import os
def main():
options = {'0': './option_0.py',
'1': './option_1.py',
'2': './option_2.py',
'3': './option_3.py'}
input = -1
while True:
if input in options:
file = options[input]
subprocess.Popen(file)
else:
print "Welcome"
print "0. option_0"
print "1. option_1"
print "2. option_2"
print "3. option_3"
input = raw_input("Please make a selection: ")
if __name__ == '__main__':
main()
但是在调用的子进程上(比如调用 option_1.py)我再次使用 raw_input 来接受来自用户的提示时遇到问题。我知道 .PIPE 参数并尝试过
subprocess.Popen(file, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
但还是没有运气。
【问题讨论】:
-
我个人会让这个尽可能非交互式。
标签: python subprocess