如何根据命令行输入包含py文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何根据命令行输入包含py文件?相关的知识,希望对你有一定的参考价值。

我的python脚本必须在代码中包含其他python脚本。我希望其他脚本作为命令行参数传递。例如:我的脚本是test.py,我想根据命令行输入在我的代码中包含first.py.命令行输入

python test.py first.py

在代码中我想要first.py导入,如:

先导入

但我无法想办法。我尝试使用optparse和fileInput,但它们并没有成为我的意图。

答案

我不认为从参数导入模块是最佳做法,但如果你真的想这样做,可以尝试下面的代码:

import sys

for file_name in sys.argv[1:]:
    module_name = file_name.replace('.py', '')
    exec('import %s' % module_name)
另一答案

为什么原始代码中的简单import语句不能完成这项工作?像这样:

import first
#
# The rest of the program.
#

然后从命令行,您只需要运行

python test.py

只要test.py和first.py位于同一目录中,这种方法就可以在test.py中有效地“包含”first.py.请包含有关您希望将first.py作为命令行参数传递的原因的详细信息。在我看来,因为你已经知道你的程序将使用first.py做什么,并且你必须在假设first.py将被导入的情况下编写你的代码,你可能只是在开头做的test.py.

另一答案

python test.py first.py - 在这种情况下,test.py是argv [0],first.py是argv [1]

在test.py中添加以下代码

from sys import argv
execfile(argv[1])
另一答案

我不知道回答你问题的最佳方法。但这是我的解决方案。同样,这可能不是最好的解决方案 -

module_name = input()

with open('file_name.py', 'w') as py_file:
    py_file.write('import ' + module_name)

以上是关于如何根据命令行输入包含py文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在命令行里运行python脚本

如何使用CLI命令在输入文件参数上运行Python脚本来生成输出文件

如何使用命令行输入来选择要在 gradle 构建中使用的属性文件?

Python - 如何将python36命令行中的行保存到.py文件中?

怎样用QtCreator编辑运行python脚本

python中的模块通过setup.py怎么安装