我从文件读取配置文件时遇到问题。
它看起来很基本,但是由于我是python新手,所以我缺少了一些东西。
配置文件如下所示
CCWD_HOME=/batch/ccwd
#Temporary location for daemon job listing
CCWD_TEMP=/tmp
#Directory for job definitions
CCWD_PROD=/batch/PRD
问题在于该文件的语法必须保持这种方式。
将字符串分配给变量需要配额标记(“”)。
有没有一种简单可行的方法可以从上述配置文件中读取变量?
例如我有剧本
#!/bin/python
import conf
print CCWD_TEMP
并得到了这个错误
Traceback (most recent call last):
File "./testconf", line 2, in <module>
import conf
File "/app/test/conf.py", line 6
CCWD_HOME=/batch/ccwd
^
SyntaxError: invalid syntax
最佳答案
看来您正在尝试import
配置文件。但是您不能这样做:import
用于导入Python模块,因此导入的文件应该是有效的Python,而CCWD_HOME=/batch/ccwd
不是。这就是语法错误的含义。
您可以使用模块configparser
来读取文件,但是它要求将设置分组在方括号中以节名称开头的节中,如下所示:
[MyStuff]
CCWD_HOME=/batch/ccwd
#Temporary location for daemon job listing
CCWD_TEMP=/tmp
#Directory for job definitions
CCWD_PROD=/batch/PRD
如果您无法更改配置文件,则必须自己解析。
with open("./testconf") as configs:
for config in configs:
if config.startswith("#"):
continue
keyword, value = config.split("=")