如何为通过命令行传递的文件提供路径

时间:2016-01-04 18:56:55

标签: python python-2.7 arguments parameter-passing command-line-arguments

我得到了如何将文件作为参数传递到How to access variables from file passed through command line

的答案

但是我要分开问,因为不要混合两个。 我能够将传递的文件中的变量作为__import__(sys.argv[1])访问并调用python test.py config。但我可以通过给pythonpath调用config.py文件吗?是/ {/ 1 {}还是python test.py ~/Desktop/config?因为如果我这样做,我会得到PYTHONPATH='~/Desktop/' python test.py config

1 个答案:

答案 0 :(得分:1)

您正尝试使用__import__调用导入python模块。它只接受模块名称。如果您需要向PYTHONPATH添加目录,可以将其添加到sys.path,然后导入模块:

#File: ~/Projects/py/main.py

import sys

python_path = sys.argv[1]
module_name = sys.argv[2]

sys.path.insert(1, python_path)

print "Importing {} from {}".format(module_name, python_path)
__import__(module_name)

现在我在masnun.py上创建了另一个名为~/Desktop的文件:

# File: ~/Desktop/masnun.py

print "Thanks for importing masnun.py"

现在我尝试像这样运行main.py

python main.py ~/Desktop masnun

所以我将Python路径传递为argv[1],模块名称传递为argv[2]。现在它有效。我得到了这个输出:

enter image description here