【发布时间】:2020-04-16 18:31:21
【问题描述】:
读取我的 .txt 文件并将其保存在 dict 中时遇到问题。 这是我的以下代码:
def __init__(self, folder_path):
os.chdir(folder_path)
self._path = folder_path
self._data = {}
_files = glob.glob('*.txt')
_temp = {}
for dat in _files:
_temp.clear()
with open(dat,"r",encoding="utf-8") as f:
for item in f:
if item != '\n':
custom = (item.strip('\n').split('='))
_temp[custom[0]] = custom[1]
self._data[dat] = _temp
print(self._data)
这是输出:
{'RC0603FR-07100KL.txt': {'count': '20', 'value': 'TPS73033', 'package': 'SOT-23-5'},
'RC0805FR-07100KL.txt': {'count': '20', 'value': 'TPS73033', 'package': 'SOT-23-5'},
'TPS73033DBVT.txt': {'count': '20', 'value': 'TPS73033', 'package': 'SOT-23-5'}}
确切的问题是,最后一个值会覆盖所有其他值。 例如。它应该是这样的:
{'RC0603FR-07100KL.txt': {'count': '100', 'value': '100k', 'package': 'Chip'},
'RC0805FR-07100KL.txt': {'count': '50', 'value': '10n', 'package': 'Cap'},
'TPS73033DBVT.txt': {'count': '20', 'value': 'TPS73033', 'package': 'SOT-23-5'}}
我做错了什么?
.txt 文件示例:
count=50
value=100k
unit=Ohm
package=0603
description=Chip Resistor
supplier=Digikey
supplierpartnumber=311-100KHRCT-ND
price=0.009
currency=CHF
【问题讨论】:
-
你能提供一个文本文件的样本吗?
-
您的问题是您将相同的字典
_temp分配给所有self._data。您需要为每个self._data复制字典或初始化字典并为其赋值。检查this -
@jordanm 是的,我添加了一个样本,其他样本看起来像这个,但计数、单位等的其他值。
-
@hadik 嗯...我真的不明白,但我会尝试一下
标签: python class dictionary