这是txt文件内容我有:
salesUnits:500
priceUnit:11
fixedCosts:2500
variableCostUnit:2
我需要在Python中创建一个字典,将读取该文件,使键salesUnits
等和值号码。我到目前为止的代码将只打印每单位变动成本:
with open("myInputFile.txt") as f:
content = f.readlines()
myDict = {}
for line in content:
myDict=line.rstrip('\n').split(":")
print(myDict)
我怎样才能修复代码,使所有键和值对显示?谢谢!
你覆盖myDict你打电话myDict=line.rstrip('\n').split(":")
各一次。以添加到词典中的图案是字典[键] =值。
myDict = {}
with open("myInputFile.txt") as f:
for line in f:
key_value = line.rstrip('\n').split(":")
if len(key_value) == 2:
myDict[key_value[0]]=key_value[1]
print(myDict)
输出
{'fixedCosts': '2500', 'priceUnit': '11', 'variableCostUnit': '2', 'salesUnits': '500'}
使用一个简单的字典解析会处理这个问题:
with open('testinput.txt', 'r') as infile:
dict = {
line.strip().split(':')[0]:
int(line.strip().split(':')[1])
if line.strip().split(':')[1].isdigit()
else
line.strip().split(':')[1]
for line in infile.readlines()}
print(dict)
输出:
{'salesUnits': 500, 'priceUnit': 11, 'fixedCosts': 2500, 'variableCostUnit': 2}
如果你想在简单的字符串带来的数字,只需使用:
dict = {
line.strip().split(':')[0]:
line.strip().split(':')[1]
for line in infile.readlines()}
还需要注意的是,你可以添加处理使用的其它变化中格式化其它数据类型或数据:
int(line.strip().split(':')[1])
if line.strip().split(':')[1].isdigit()
else
myDict = {}
with open('dict.txt', 'r') as file:
for line in file:
key, value = line.strip().split(':')
myDict[key] = value
print myDict
输出:
{'fixedCosts': '2500', 'priceUnit': '11', 'variableCostUnit': '2', 'salesUnits': '500'}