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' 

Update 関数を呼び出したとき

私はこの質問を見ましたPython: IOError: [Errno 2] そのようなファイルやディレクトリはありませんが、何も機能していないようです。最初の関数がファイルをロックしているかのようです。どんな助けでもいただければ幸いです

4

1 に答える 1

0

エラーが発生している行を正確に知るためにトレースバックを確認できれば非常に役立ちますが、ここからが始まりです...

まず、現在のディレクトリでのみ使用できると予想されるファイル名を使用しているコード内の 2 つの場所があります。ファイルを含むディレクトリの外でコードを実行すると、これがコードの障害の可能性があるポイントの 1 つです。

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 に答える