从文件中读取未格式化的 name/value 对,对其进行格式化,然后在 Python 2 字典中打印出来
Reading unformatted name/value pairs from a file, formatting it, and printing it out in Python 2 dictionary
给定一个像这样的文本文件
# Name_value_pair.txt
name1 = value1
name2 = value2
name3 = "some value3"
name4=value4
name5=
name6
是否可以读取该文件,将其格式化为字典并使用 python 打印出来?
我知道如何打开和阅读文件,但我不知道是否可以过滤掉可怕的格式,以便将其变成适合制作成字典的形式?
编辑:ConfigParser 模块似乎更适合我试图完成的工作。
这将忽略任何没有“=”的行,然后从剩余行中删除每个键和值外部的所有引号和空格,然后将其放入字典中:
data = {}
with open('in.txt', 'r') as fh:
for line in fh:
if '=' not in line:
continue
line = line.replace('"', '')
data[(line.split('='))[0].strip()] = (line.split('='))[1].strip()
for k, v in data.items():
print("{}: {}".format(k, v))
输出:
name1: value1
name2: value2
name3: some value3
name4: value4
name5:
给定一个像这样的文本文件
# Name_value_pair.txt
name1 = value1
name2 = value2
name3 = "some value3"
name4=value4
name5=
name6
是否可以读取该文件,将其格式化为字典并使用 python 打印出来?
我知道如何打开和阅读文件,但我不知道是否可以过滤掉可怕的格式,以便将其变成适合制作成字典的形式?
编辑:ConfigParser 模块似乎更适合我试图完成的工作。
这将忽略任何没有“=”的行,然后从剩余行中删除每个键和值外部的所有引号和空格,然后将其放入字典中:
data = {}
with open('in.txt', 'r') as fh:
for line in fh:
if '=' not in line:
continue
line = line.replace('"', '')
data[(line.split('='))[0].strip()] = (line.split('='))[1].strip()
for k, v in data.items():
print("{}: {}".format(k, v))
输出:
name1: value1
name2: value2
name3: some value3
name4: value4
name5: