我有两个if语句需要运行才能获得构建字典所需的所有信息。我有一个文本文件' file.txt'其值由行分隔。我的代码的基本表示如下:
dict = {}
for line in 'file.txt':
line = line.strip()
if line.startswith('Key: '):
key = print(line)
此时我需要另一个if语句来获取需要与' key'配对的值。我刚刚定义的那个:
elif line.startswith('Value: '):
value = print(line)
现在我需要更新字典,但我超出了范围,我不知道如何将key
和value
绑定在同一个字典中,其值通过逐行'file.txt'
获得,以确保密钥与正确的值配对。有没有办法做到这一点?
文件(打开时)看起来像是由换行符分隔的列表:"Filename: name, Size: 200MB, Version: 2.2.2, etc..."
此模式重复。所以我需要抓住'文件名',跳过'尺寸',抓住'版本',并将两者放在一起作为键/值对。
答案 0 :(得分:1)
找到钥匙。继续寻找直到找到价值。如果您的数据文件是一个简单的替换,则此代码中的“无”内容无关紧要。如果您在此方面存在间歇性错误,则可以使用“无”
dict = {}
infile = open("in", 'r')
for line in infile:
line = line.strip()
line = line.split(',')
print "line: ", line
for field in line:
field = field.strip()
print "field:", field
if field.startswith('Filename: '):
key = field.split(':')[1]
value = None
elif field.startswith('Version: '):
value = field.split(':')[1]
if key is not None:
dict[key] = value
value = None
key = None
print dict
这是输出,给定输入行:
line: ['Filename: name', ' Size: 200MB', ' Version: 2.2.2']
field: Filename: name
field: Size: 200MB
field: Version: 2.2.2
{' name': ' 2.2.2'}