How to execute file in Python with arguments using import?
我听说你可以这样用import来执行一个文件。文件.py:
1 2
| #!/usr/bin/env python
import file2 |
文件2.py:
1 2
| #!/usr/bin/env python
print"Hello World!" |
号
file.py将打印Hello World。如何使用import使用参数执行此文件?
- stackoverflow.com/questions/20309456/…
- stackoverflow.com/a/3781960/391161
程序参数在sys.argv中可用,可供任何模块使用。你可以把file2.py改成
1 2
| import sys
print"Here are my arguments", sys.argv |
您可以使用argparse模块进行更复杂的分析。
- 他不想接收来自终端的争论。他想通过"进口"声明把它们寄出去。
- @bharel-op从未说明这些参数来自何处,或者它们是如何在file2.py中使用的。他当然没有说它们不是标准的程序参数。
- @我很抱歉,显然我的指示不够清楚。但如果可能的话,我想使用import执行一个文件。
- @比斯基斯塔德-你说的"执行"是什么意思?导入会导致执行模块。它的__name__是file2,而不是__main__,但除此之外,它与直接从命令行执行差不多。
- 也许您可以在file2.py中添加几行来显示您想要如何使用这些参数,并添加一些关于这些参数来自何处的详细信息——它来自命令行吗?file1.py是否生成它们?
导入不用于执行脚本。它用于获取或"导入"它所包含的函数、类和属性。
如果您希望使用不同的解释器执行脚本,并为其提供参数,那么应该使用subprocess.run()。
在python 2中,如果需要程序输出,可以使用subprocess.call()或subprocess.check_output()。
- 是和否。如果安装软件包,模块不在系统PATH中,并且通常在PATH中包含帮助脚本来运行它们。此外,这种导入技术允许您在运行目标脚本之前处理系统环境。
- 我用的是2.7,有没有办法在2.7中做到这一点?还是需要升级到3.x?
- @为python 2添加了bjskistad。