Python错误io.UnsupportedOperation:不可读

时间:2017-09-08 17:33:36

标签: python ios csv

我有这个错误,我不知道为什么我得到它。 我按照我的Python手册中的步骤操作,我得到了这个。如果他们有那个奇怪的字符,我试着清理第8列和第9列的文件。 如果有人可以帮助我,请告知。

错误出现在代码行中:for row in csv.reader(f):

请在下面找到我的代码:

    import csv


file = '/Users/cohen/Desktop/sdn-2.csv'
newstring = "null"
newinteger = int(0)
with open(file, 'r+') as f:
    for row in csv.reader(f):
       if row[7] =="-0-":
           row[7] = newinteger
       if row[8] == "-0-":
           row[8] = newinteger
f.close()

*** LATER EDIT我改变了上面的代码,但没有做任何事情并没有用-0-替换0

3 个答案:

答案 0 :(得分:0)

编辑:

您需要使用r +打开文件。使用w仅用于写入,r +用于写入和读取访问。

with open(file, 'r+') as f:

row [7] == newinteger 中使用 == 调用相等运算符。它检查左右操作数的值是否相同。您希望使用 = 设置新值。

row[7] = newinteger

答案 1 :(得分:0)

我之前的其他内容也是如此,但我认为这个错误来自字符串"-0-"周围的括号。也许第一次使用的空间也是如此。

if row[7] ==("-0-"):

应该是:     如果row [7] ==“ - 0 - ”:

if row[8] == ("-0-"):

应该是:     如果row [8] ==“ - 0 - ”:

答案 2 :(得分:0)

这是我的解决方案:创建输出文件并在其中写入,我从源文件中读取的内容。有点奇怪,因为在VBA中更容易做到这一点,然后在python中,但这是来自pythn的csv模块中的解决方案。我不喜欢我必须创建另一个文件,我不能写入readed文件内部,我必须写入一个全新的文件,但这就是生活....如果有人有更好的方法,我很开心。

希望其他人使用此代码。

import csv
newstring = "null"
newinteger = (0)
with open('/Users/cohen/Desktop/sdn-4 2.csv', 'r') as file1, open('/Users/cohen/Desktop/new_sdn.csv', 'w', newline='') as file2:
    reader = csv.reader(file1, delimiter=',')
    writer = csv.writer(file2, delimiter=',')

    for row in reader:
        replaced1 = row[7].replace('-0-', newstring)
        row[7]=replaced1
        replaced2 = row[8].replace('-0-', newinteger)
        row[8]=replaced2
        writer.writerow(row)