Python 3.x python3:csv.writer如何删除行^M的结尾?

Python 3.x python3:csv.writer如何删除行^M的结尾?,python-3.x,export-to-csv,Python 3.x,Export To Csv,我意识到export.csv文件的每一行末尾都以^M结尾, 你知道怎么去掉它吗? 可能我必须修改csv.writer 当我将这个csv文件导入SQL时,我在行的末尾额外得到了一个空列:( 我使用以下代码将csv读取到阵列: datafile = open('source.csv', 'r') datareader = csv.reader(datafile, delimiter=',') ... 然后用此代码写入另一个csv文件 with open('export.csv', 'w', new

我意识到export.csv文件的每一行末尾都以^M结尾, 你知道怎么去掉它吗? 可能我必须修改csv.writer 当我将这个csv文件导入SQL时,我在行的末尾额外得到了一个空列:(

我使用以下代码将csv读取到阵列:

datafile = open('source.csv', 'r')
datareader = csv.reader(datafile, delimiter=',')
...
然后用此代码写入另一个csv文件

with open('export.csv', 'w', newline='') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=',',
                            quotechar='|', quoting=csv.QUOTE_MINIMAL)
    spamwriter.writerows(data2)

您应该改为使用
换行符=''
打开源文件,以便可以为
csv保留原始换行符结尾。要正确处理换行符,请执行以下操作:

datafile = open('source.csv', 'r', newline='')
摘自:

如果未指定
换行符='
,则在带引号的字段中嵌入换行符 在使用
\r\n
将添加写入额外
\r
时的行号。它应始终为 可以安全地指定
newline=''
,因为
csv
模块有自己的功能 (通用)换行处理


您应该改为使用
换行符=''
打开源文件,以便可以为
csv保留原始换行符结尾。要正确处理换行符,请执行以下操作:

datafile = open('source.csv', 'r', newline='')
摘自:

如果未指定
换行符='
,则在带引号的字段中嵌入换行符 在使用
\r\n
将添加写入额外
\r
时的行号。它应始终为 可以安全地指定
newline=''
,因为
csv
模块有自己的功能 (通用)换行处理

我添加了换行符='',但最后仍然有^M。仅供参考:对于创建新对象数据2,我使用位于btw read and write csv>
data2=copy的代码。deepcopy(数据)
我添加了换行符='',但最后仍然有^M。仅供参考:对于创建新对象数据2,我使用位于btw read and write csv>
data2=copy.deepcopy(数据)的代码