您的index
方法无效,因为将python --version
其版本输出到STDERR,而不是STDOUT。如果不需要分隔这些流,则可以将STDERR重定向到STDOUT:
value = %x(python --version 2>&1)
此调用是同步的,因此在运行脚本(python do_work.py foo bar 2>&1
)之后,您应该能够读取其生成的文件。
如果脚本由于某种原因无法创建文件,您现在将在value
变量中看到异常,因为错误消息通常会发送到STDERR。
如果要将STDERR与STDOUT分开,请使用Open3模块。
请注意,脚本需要花费一些时间才能运行,因此调用可能会重叠。我会在这里使用一个队列来防止这种情况。
并且不要忘记检查用户输入的数据。切勿将其直接传递给脚本。