【问题标题】:Why am I getting "_csv.Error: newline inside string"?为什么我收到“_csv.Error:字符串内的换行符”?
【发布时间】:2014-04-29 02:10:47
【问题描述】:

这个问题有一个答案:

Getting "newline inside string" while reading the csv file in Python?

但是当我使用接受的答案时,这不起作用。

【问题讨论】:

  • 您是否尝试过其他答案?出于多种原因,接受的答案实际上是完全错误的。

标签: python csv


【解决方案1】:

如果上述链接中的答案不起作用,并且您在执行代码期间打开了多个文件,请返回并确保在完成后关闭所有以前的文件。

我有一个脚本可以打开并处理多个文件。然后在最后,它以与 Amit Pal 看到的相同的方式不断抛出 _csv.Error。

我的代码运行大约 500 行,分为三个阶段,依次处理多个文件。这是给出错误的代码部分。如您所见,代码很普通:

f = open('file.csv')
fread = csv.reader(f)
for row in fread:
    do something

错误是:

对于 fread 中的行:

_csv.Error: 字符串中的换行符

所以我告诉脚本打印行的内容....好吧,这不清楚,这就是我所做的:

print row
f = open('file.csv')
fread = csv.reader(f)
for row in fread:
    do something

有趣的是,打印的是我之前打开和处理过的文件中的最后一行。
真正奇怪的是我使用了不同的变量名,但显然数据被卡在某个缓冲区或内存中。

所以我回去确保我关闭了所有以前打开的文件,这解决了我的问题。

希望这对某人有所帮助。

【讨论】:

  • 以二进制模式打开f(使用Python 2时)或设置newline=''(使用Python 3时)。
  • 顺便说一句,您看到的异常与在其前面打印row 无关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-04
  • 1970-01-01
  • 1970-01-01
  • 2014-10-14
  • 1970-01-01
  • 1970-01-01
  • 2010-11-12
相关资源
最近更新 更多