如何在 python 3 解释器中运行带有参数的 python 脚本?

Posted

技术标签:

【中文标题】如何在 python 3 解释器中运行带有参数的 python 脚本?【英文标题】:How to run python script with arguments in python 3 interpreter? 【发布时间】:2017-10-03 17:48:40 【问题描述】:

我正在使用 PyZo(使用 python3.5)并且不知道 如何从 PyZo 的 python 解释器或 从 python 解释器 运行带有参数的脚本。我发现以下工作示例 here 用于 python3 但不知道如何将参数(例如 csv 文件 input_data.csv)传递给脚本

>>> exec(open("./script.py").read())

这在 iPython 中有效:

In [1]: run script.py input_data.csv

上面的 iPython 命令的 python 3 等效项是什么?

谢谢


注1

当从操作系统命令行运行带有参数的脚本时,您输入以下内容:

$ python script.py input_data.csv

使用 python 解释器时我期望能够运行 python 脚本,例如像这样:

>>> script.py input_data.csv

即没有calling python executable,或者使用'exec(open("./script.py").read())',等等。 对我来说,运行带有参数的脚本是非常基本的事情,但显然不适用于大多数用户。

【问题讨论】:

Python: Run function from the command line的可能重复 我想从 python 解释器而不是操作系统命令行运行脚本 “python3 等价物”是 (i) 为 Python 3 安装 IPython 并直接使用它,或者 (ii) (有点笨拙)在执行 @ 的内容之前手动设置 sys.argv=['script.py', 'input_data.csv'] 987654330@。但我认为您真正想要的是与 IPython 的 run 等效的 PyZo。得知它以某种形式存在,我不会感到惊讶,但这是 PyZo 特有的问题。 【参考方案1】:
>>> import subprocess
>>> subprocess.run('python script.py input_data.csv', shell=True)

【讨论】:

我喜欢这个克劳迪奥,在别处没见过 听起来是个好主意,但它失败了我认为从解释器运行某些东西的关键好处,即之后进一步访问/实验变量的能力,因为这会产生一个单独的进程.

以上是关于如何在 python 3 解释器中运行带有参数的 python 脚本?的主要内容,如果未能解决你的问题,请参考以下文章

如何运行带有blender参数的python脚本?

如何运行带有参数的python脚本?

同时装有py2 和3,运行scrapy如何区分

如何使用python运行带有参数的exe文件

如何在 Jupyter 笔记本中运行 Python asyncio 代码?

在Visual Studio代码中,当我调试/运行代码时,我想将参数(例如-i)传递给Python解释器