如何用Python读取inventory.txt并输出指定字典嵌套列表结构数据
原代码存在的问题
- 没有提前初始化存储数据的字典
storeNumber - 读取的每行内容前后带有
<br>和</br>标签,没有提前清理,会导致拆分出来的item前缀多了<br>、stock后缀多了</br> - 字典赋值逻辑写在了循环外面,只会保留最后一行的处理结果,之前行的数据都会丢失
- 库存数字默认是字符串类型,没有转成你预期的整数格式
- 最后打印时误用了不存在的
storeWord变量,会直接报错
修改后的可运行代码
# 初始化存储结果的字典 storeNumber = {} # 打开文件读取内容 with open('inventory.txt', 'r', encoding='utf-8') as file: for line in file: # 清理每行前后的标签、空白字符 clean_line = line.strip().replace('<br>', '').replace('</br>', '').strip() # 跳过空行 if not clean_line: continue # 拆分商品编码和库存数据 item, stock = clean_line.split(':') # 库存字符串拆分后转成整数列表 stock_list = [int(num) for num in stock.strip().split(',')] # 原文件中C5统一为你预期的C05格式 if len(item) == 2: item = f"{item[0]}0{item[1]}" # 存入字典 storeNumber[item] = stock_list # 输出最终结果 print(storeNumber)
运行后输出结果和你要求的格式完全一致:{'C01': [10, 10, 5, 4], 'C02': [0, 20, 10, 5], 'C03': [10, 20, 10, 1], 'C04': [0, 0, 10, 0], 'C05': [1, 1, 1, 1]}
内容的提问来源于stack exchange,提问作者evilgreenred
相关产品推荐
相关产品推荐

