Python使用csv库读写CSV文件时如何过滤或删除末尾空白行
解决方案
方法1:读取时过滤空行(无需修改原有写入逻辑)
空行被csv.reader解析后会得到空列表,直接做布尔判断跳过即可,修改后的代码如下:
import csv hourList = [] with open("reports/totalHours.csv", "r") as report: reader = csv.reader(report) for row in reader: # 空列表布尔值为False,直接跳过空白行 if row: hourList.append(row) # 如果不需要逐次打印追加过程,可将print移到循环外 print(hourList)
额外说明:你原有输出出现两次打印,是因为print语句放在了for循环内部,每遍历一行就会打印一次当前hourList的状态,将print移到循环外仅会输出最终的结果列表。
方法2:写入时从根源避免生成多余空行(推荐)
Python csv模块写入文件时,若打开文件未添加newline=''参数,会自动插入多余的换行符,即便是append模式也适用该规则,写入时的参考代码如下:
import csv # 追加模式打开时添加newline=''参数即可避免生成空白行 with open("reports/totalHours.csv", "a", newline='', encoding='utf-8') as f: writer = csv.writer(f) # 此处替换为你实际要写入的行内容 writer.writerow(["000", "40"])
该写法是csv模块官方推荐的兼容写法,可同时适配Windows、Linux、macOS平台,不会产生多余的空白行。
内容的提问来源于stack exchange,提问作者Adsnipers
相关产品推荐
相关产品推荐

