如何从Python中读取文件中的参数值

som*_*oma 5 python file

我开始学习Python,并在尝试从文件中读取值时遇到一些问题.

我的参数文件有点像这样:

var1 11111111
path_value "some/space containing path/file.txt"
var3 something
#some other values
var4 some/value1
var5 some/value2
var6 some/value3
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

file=open('this_file.txt')
for line in file:
    fields = line.strip().split()
    if(fields[0] in "var1"):
        ## this will give me 11111111
        var_1_value=fields[1]
    if(fields[0] in "path_value"):
        ## this will give me only till "/some/space
        path_value_contains=fields[1]
Run Code Online (Sandbox Code Playgroud)

如何正确获取路径?我不确定这是一种有效的做事方式.你能告诉我任何更好的方法吗?

我没有使用任何模块.

Ada*_*ith 3

正如我在评论中提到的,我强烈建议您使用擅长于此的 stdlib 模块,但如果您打算自行开发,那么问题就来了:

if fields[0] in "path_value"
Run Code Online (Sandbox Code Playgroud)

这不是测试是否fields[0]等于"path_value"而是测试是否fields[0]"p""a""t""h""_"等之一。

尝试改为:

if fields[0] == "path_value"
Run Code Online (Sandbox Code Playgroud)

也就是说,您似乎遇到了一个完全不同的问题,并且该问题仅与复制/粘贴错误有关。如果你使用的是 Python3,你可以尝试这样做:

for line in file:
    param_name, *param_values = line.split()
    param_value = ' '.join(param_values)
    # then proceed as usual
Run Code Online (Sandbox Code Playgroud)