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

问题描述 投票:0回答:4

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

python test.py first.py

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

先导入

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

python python-2.7 command
4个回答
1
投票

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

import sys

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

0
投票

为什么原始代码中的简单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.


0
投票

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

在test.py中添加以下代码

from sys import argv
execfile(argv[1])

0
投票

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

module_name = input()

with open('file_name.py', 'w') as py_file:
    py_file.write('import ' + module_name)
© www.soinside.com 2019 - 2024. All rights reserved.