追加与问题无关。请注意,前两行(来自原始文件的行)也是双倍行距。
真正的问题是您已以 文本 模式打开文件。
CSV是一种二进制格式,信不信由你。csv模块
rn按预期的那样编写了一个误导性的名称“ lineterminator”(应为“
rowseparator”),但随后Windows C运行时启动并用替换了“”
n,
rn以便
rrn在行与行之间插入。使用Excel“打开” csv文件时变得困惑
无论您是否在Windows上操作,请始终以二进制模式(“ rb”,“ wb”,“ ab”)打开CSV文件。这样,即使在*
x盒子上,您也将获得预期的行分隔符(CR LF),您的代码将是可移植的,并且数据中嵌入的任何换行都不会更改为其他内容(在编写时)或引起戏剧性(在输入时)
,当然可以正确地引用它们)。
其他问题:
(1)请勿将数据放在根目录(
C:)中。Windows在1980年代从MS-DOS继承了分层文件系统。用它。
(2)如果必须在代码中嵌入硬连线的文件名,请使用原始字符串
r"c:test.csv"…如果您
"c:test.csv"将’
t’解释为TAB字符;类似的问题
r和
n
(3)Python手册中的示例更加简洁而不是健壮的代码。
不要这样做:
w = csv.writer(open('foo.csv', 'wb'))做这个:
f = open('foo.csv', 'wb')w = csv.writer(f)然后,完成后,您将
f可以使用它
f.close()来确保将文件内容刷新到磁盘上。更好的是:继续阅读新
with声明。



