【发布时间】:2014-01-27 20:22:06
【问题描述】:
我有 Python 脚本,它在运行时接受用户输入并提供一些输出。 示例代码:
import random
l1 = ['Bob', 'Eric', 'Dimitar', 'Kyle']
l2 = ['Scott', 'Mat', 'Con']
n = raw_input('Enter no. of persons: ')
for i in range(int(n)):
print random.choice(l1) + ' ' + random.choice(l2)
输出:
$ ./generate_name.py
Enter no. of persons: 2
Kyle Scott
Eric Mat
现在我想编写另一个 Python 脚本,该脚本将使用特定输入多次运行第一个 Python 脚本(输入序列存储在列表中)并将输出记录在文件中。 此外,我无法对第一个 Python 代码进行任何更改。
我可以使用subprocess 模块来运行脚本并记录输出,但如何处理交互式用户输入部分?
【问题讨论】:
-
如果您使用的是 Unix 风格的系统,您可能会使用管道...
-
你的意思是像:
subprocess.Popen('./generate_name.py <<< 2', shell= 1)。是的,那会奏效。非常感谢:) -
您可能应该使用
Popen的stdin参数,而不是使用shell=True(或您不太惯用的版本)。
标签: python interactive