python - 比较python中的2个csv文件时列表索引超出范围
问题描述
我想比较和更新 2 个 csv 文件。如果 file1 比 file2 多出一行,则应该更新 file2。
这是我的代码:
with open(file1, 'r') as f1, open(file2, 'r') as f2:
old_file = list(csv.DictReader(f1))
new_file = list(csv.DictReader(f2))
print(len(old_file)) # It is 20
print(len(new_file)) # It is 23
for row in range(len(new_file)):
if len(old_file) < row :
if new_file[row]['id'] in old_file[row]:
print(row)
此代码在第二个中引发错误if statement
。如果我删除它并打印行信息,它工作得很好。这里有什么问题?
解决方案
你的情况是错误的方法。
for row in range(len(new_file)):
if len(old_file) < row :
if new_file[row]['id'] in old_file[row]:
print(row)
应该
for row in range(len(new_file)):
if row < len(old_file):
if new_file[row]['id'] in old_file[row]:
print(row)
推荐阅读
- angular - Angular 7 NGB 手风琴菜单未呈现
- python - 亚马逊 alexa 技能无法正常运行工作 python 代码
- video - 尝试将 11 秒的黑色视频连接到 5 分钟视频的末尾。在输出流错误中获取非单调 DTS
- width - 如何在 C3 Javascript 库中的所有条形中保持相同的宽度?
- bash - AWK 或 SED 替换特定列中字母之间的空格
- vb.net - 如何异步执行一个函数?
- javascript - 我正在学习 react.js,但我发现很难理解部署时 react 应用程序将如何工作?
- python - 用熊猫(数据框)中的另一数据覆盖一个数据
- highcharts - HighCharts 甘特树网格折叠细节
- javascript - 将多个参数传递给 Javascript 函数