与execfile中的对象交互/子流程调用带参数的python文件

2024-03-29 13:08:55 发布

您现在位置:Python中文网/ 问答频道 /正文

这里是Python新手。你知道吗

我正在尝试与python文件中的变量/对象交互,该文件的数据需要参数。假设我只能从参数获取此数据,而不是生成包含要传递的参数的脚本(这意味着我必须使用execfile或子流程调用). 你知道吗

假设这是我的python文件,foo.py公司公司名称:

bar = 123
print("ran foo.py, bar = %d" % bar)

当然,文件中还有更多的参数需要解析,但这与此无关。你知道吗

现在,在python shell中(在终端中为python或ipython):

>>> import subprocess
>>> subprocess.call("python foo.py 'args'", shell=True)
ran foo.py, bar = 123
0
>>> bar
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'bar' is not defined

正如上面的输出示例所示,bar不是在stdout from之后定义的foo.py公司. 你知道吗

有没有办法与execfile或execfile调用的python文件中的变量或数据对象进行交互子进程调用?通常,我会在REPL中求值或在IDE中运行,以便在执行后测试值和对象,但我不知道如何使用python文件从解析的参数构建数据。你知道吗

有人知道我怎么做吗?无论如何,谢谢你的考虑。你知道吗


Tags: 文件数据对象py脚本参数foobar
1条回答
网友
1楼 · 发布于 2024-03-29 13:08:55

是foo.py公司在你的控制之下?如果是,只需更改它,这样就可以作为模块导入并与之交互来运行它。 如果不是,您可能需要将输出捕获为字符串,并从中新构建变量bar。 如何捕获子流程的输出在这里得到解答,例如: Running shell command from Python and capturing the output

相关问题 更多 >