You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python CSV读取Excel导出的CSV文件时如何去除每行末尾的\n

解决CSV文件读取时每行末尾带\n的问题

嘿,我看到你的问题啦——读取CSV时每行末尾都带着\n,其实问题出在你代码里的一个小细节上,咱们一步步来解决:

首先,你初始化了csv.reader对象spamreader,但从头到尾都没用到它,反而直接遍历了原始的文件对象csvfile,这样读出来的每一行自然会保留换行符\n。下面给你两种靠谱的解决办法:

方法一:用csv.reader正确读取(推荐)

csv模块的reader对象会自动帮你处理换行符和分隔符,这也是它存在的意义呀~ 因为你指定了dialect=csv.excel_tab(制表符分隔),如果你的CSV每行只有一列数据,那reader返回的每一行是一个包含单个元素的列表,取这个元素就好:

import csv

with open('/users/ps/downloads/test.csv', 'r', newline='') as csvfile:
    # 注意:Python 3里'rU'模式已经弃用,推荐用newline=''来适配不同系统的换行符
    spamreader = csv.reader(csvfile, dialect=csv.excel_tab)
    a = []
    for row in spamreader:
        a.append(row[0])
    print(a)

要是想代码更简洁,还可以用列表推导式优化:

import csv

with open('/users/ps/downloads/test.csv', 'r', newline='') as csvfile:
    spamreader = csv.reader(csvfile, dialect=csv.excel_tab)
    a = [row[0] for row in spamreader]
    print(a)

方法二:直接处理每行的换行符

如果坚持要直接遍历文件行,那可以用字符串的strip()方法去掉首尾的空白字符(包括换行符);如果担心数据本身有首尾空格需要保留,就用rstrip('\n')只去掉末尾的换行:

with open('/users/ps/downloads/test.csv', 'r') as csvfile:
    a = []
    for row in csvfile:
        # 去掉所有首尾空白(包括换行、空格)
        a.append(row.strip())
        # 或者只去掉末尾换行:a.append(row.rstrip('\n'))
    print(a)

这样改完之后,输出就会是你想要的['HEADER', 'a', 'b', 'c', 'd', 'e']啦~

内容的提问来源于stack exchange,提问作者Sapna Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:59:49