【发布时间】:2016-01-04 17:46:19
【问题描述】:
目前我的包中有config.py,我可以从其他py文件访问config.py中定义的变量
import config
var1 = config.var1
首先,我可以将文件作为参数传递吗?
test.py config.py
但是有没有办法通过命令行将配置文件作为参数传递并访问其中定义的变量?我看到有sys 模块来获取通过命令行传递的参数。但是我可以得到传递文件中定义的变量吗?
编辑
现在我能够以__import__(sys.argv[1]) 访问传递文件中的变量并调用python test.py config。但是我可以通过给出 pythonpath 来调用 config.py 文件吗? e/g/python test.py ~/Desktop/config或PYTHONPATH='~/Desktop/' python test.py config?因为如果我这样做,我会得到no module error。
【问题讨论】:
-
你指的是命令行参数,比如
my_script.py a=1 b=abc d=1,23,5? -
只需从 sys.argv 中获取文件名,然后导入文件并访问变量。
-
@ChadS。我尝试了 sys.argv 但我收到错误
import by filename is not supported我尝试了__import__(sys.argv[1])并通过了python test.py ./config.py -
@user2661518:如果去掉路径前缀和 py 后缀会怎样?此外,为什么不以与语言无关的方式(例如 JSON 或 XML)存储变量并使用 Python 库从文件中读取变量?
标签: python python-2.7 arguments