使用Python打印CSV文件时首行数据丢失问题求助
CSV首行数据丢失的问题排查与修复
问题原因
- 首行丢失的直接原因:你嵌套了两层
for row in input_data循环。CSV阅读器是迭代器,外层循环第一次迭代时已经读取了首行数据(用于赋值package_id等变量),但未打印该行;随后内层循环从迭代器的下一行(第二行)开始读取并打印,因此首行内容被遗漏。 - 额外代码错误:
zip_code = [4]和note = [7]是错误写法,这会将变量赋值为包含数字4/7的列表,而非取CSV行中对应索引的元素,应修正为zip_code = row[4]、note = row[7](索引从0开始)。
修复方案
方案1:处理每行数据同时打印package_id
如果需要对每行数据进行变量赋值处理,同时打印package_id,只需保留单层循环,在循环内完成处理和打印:
import csv with open('Data/inputdata_c950.csv', encoding='utf-8-sig') as csvfile: input_data = csv.reader(csvfile, delimiter=',') for row in input_data: # 修正索引取值错误 package_id = row[0] address = row[1] city = row[2] state = row[3] zip_code = row[4] delivery = row[5] size = row[6] note = row[7] start_time = '' address_location = '' delivery_status = 'At Hub' # 打印当前行的package_id print(package_id)
方案2:仅打印所有行的package_id
如果不需要处理其他变量,直接遍历打印即可:
import csv with open('Data/inputdata_c950.csv', encoding='utf-8-sig') as csvfile: input_data = csv.reader(csvfile, delimiter=',') for row in input_data: print(row[0])
内容的提问来源于stack exchange,提问作者Ainz71
相关产品推荐
相关产品推荐

