0

我写了这段代码

import os
import csv
import time

class upload_CSV:

    def __init__(self):
        coup = []
        self.coup = coup
        self.csv_name = 'Coup.csv'

    def loader(self,rw):
        with open(self.csv_name,'rb') as csv_file:
            reader = csv.reader(csv_file,delimiter=',')
            for row in reader:
                self.coup.append(row[rw])

            self.coup = self.coup[1:]
            csv_file.flush()
            csv_file.close()
        return self.coup

    def update(self,rw,message):
        #try:
        with open(self.csv_name,'rb') as csv_file1:
            reader = csv.reader(csv_file1,delimiter=',')
            csv_file1.flush()#To clean the register for reuse
            csv_file1.close()
        #except Exception as ex:
        #error = 'An error occured loading data in the reader'
        #   #raise
        #   return ex    

        os.remove(self.csv_name)
        writer = csv.writer(open(self.csv_name,'wb'))

        for row in reader:
            if row[rw]==message:
                print str(row),' has been removed'
            else:
                writer.writerow(row)
        return message

我正在尝试首先将 csv 的内容读取到列表中。获得相关数据后,我需要返回我的 csv 并创建一个没有该记录的新条目。我不断收到单个错误

Line 27 in update
with open(csv_name,'rb')as csvfile1:
Python: IOError: [Errno 2] No such file or directory 'Coup.csv' 

当我调用更新函数时

我看过这个问题Python: IOError: [Errno 2] No such file or directory但似乎没有任何效果。就好像第一个函数对文件有锁一样。任何帮助,将不胜感激

4

1 回答 1

0

如果我们看到回溯以确切地知道是哪一行产生了错误,那将非常有帮助......但这是一个开始......

首先,您的代码中有两个地方正在使用一个文件名,该文件名预计只能在当前目录中使用。如果您在包含该文件的目录之外运行它,这可能是代码中的一个故障点:

self.csv_name = 'Coup.csv'
...
with open(self.csv_name,'rb') as csv_file:
...
with open('Coup.csv~','rb') as csv_file1:
...

然后,您还指的是一个不存在的变量:

def update(self,rw,message):
    ...
    # self.csv_name? or csv_file1?
    os.remove(csv_name)
    writer = csv.writer(open(csv_name,'wb'))

另外,你怎么能确定这个临时文件会存在?有保障吗?我通常不建议依赖系统临时文件。

with open('Coup.csv~','rb') as csv_file1:
于 2012-08-13T17:13:51.793 回答