【发布时间】:2014-01-20 12:24:42
【问题描述】:
我有一个大约 100 行的 csv 文件。 100 行中的一些单元格的文件路径如下:
C:\\\\Users\\\Simon\\\\Desktop\\\\file.jpg
我想在 python 中打开 csv 文件并仅更改具有三斜杠的行并将它们转换为单个反斜杠。到目前为止,这是我的代码:
import csv
with open('myCsvFile', 'rb') as csvfile:
SysIndexTwo = csv.reader(csvfile)
for allRows in SysIndexTwo:
if '\\\\' in allRows:
writer.writerows(allRows.replace('\\\\', '\\'))
尝试了建议并得到以下错误:
Traceback (most recent call last):
File "SIPHON2.py", line 7, in <module>
for allRows in SysIndexTwo:
ValueError: I/O operation on closed file
simon@ubuntu:~/Desktop$ python SIPHON2.py
Traceback (most recent call last):
File "SIPHON2.py", line 7, in <module>
for allRows in SysIndexTwo:
ValueError: I/O operation on closed file
这似乎不起作用。有什么想法吗?
谢谢
【问题讨论】:
-
您的迭代中有四个斜线,而不是三个。
-
您显然根本没有研究过这个,因为您一直在编辑您的问题。请参阅有关 with 语句、文件和转义特殊字符的文档。
-
你必须打算你代码的最后三行,在
with语句之外,文件会自动关闭 -
这里至少有三个不同的问题:错误消息是 Steinar 和 Henry 解释的那个;不清楚你是有 3 个还是 4 个反斜杠,因此无法编写正确的代码;那么即使正确计数,不使用原始字符串也会使编写(和读取)代码变得非常困难。仅仅解决这三个问题中的一个并不能神奇地解决另外两个问题。你需要修复所有这些。