python-3.x - python3:csv.writer 如何删除行尾^M?
问题描述
我意识到我的 export.csv 文件的每一行都以 ^M 结尾,知道如何删除它吗?可能我必须以某种方式修改 csv.writer 当我将此 csv 文件导入 SQL 时,我在行的末尾有一个额外的 NULL 列。:(
我使用以下代码将 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)
解决方案
您应该打开源文件,newline=''
以便可以保留原始换行符结尾csv.reader
以正确处理换行符:
datafile = open('source.csv', 'r', newline='')
文档摘录:
如果
newline=''
未指定,则嵌入在引用字段中的换行符将不会被正确解释,并且在使用\r\n
linendings on write 的平台\r
上将添加额外的。指定 应该始终是安全的newline=''
,因为csv
模块自己(通用)换行处理。
推荐阅读
- webpack - Webpack 4模块解析失败:意外的令牌
- python - Writing prediction results into separate files for each group using 'for loop' in Python
- javascript - 在 NodeJS 中解析一个 unicode 编码的字符串
- php - 尝试显示城市列表
- spring - 春季查询执行请求异常
- javascript - 如何使用velocity 1.7转义位于字符串中的单引号'或双引号"
- c - 如何快速识别下面和任何其他代码中代码的复杂性?
- java - 使用迭代器从 ArrayList 中删除。不会给出错误但不会删除
- r - R从sqlite数据库导入数据框找不到数据库中的变量
- php - 如何防止在此查询中被零除?