2016-11-12 25 views
0

私は文字列としてCSVファイル名を受け入れ、開いて読み込み、データベースを作成してデータベースを返す必要がある関数に取り組んでいます。私がこれまで行ってきた試みは、正しいロジックを持っているようですが、「No such file or directory 'filename.csv」というエラーが出ています。私が読んでいるファイルは、file0.csv、file1.csvなどです。ありがとうございました。ありがとうございました。ありがとうございました。ありがとうございました。ありがとうございました。ありがとうございました。ありがとうございました。ありがとうございました。ありがとうございました。 。Pythonでcsvファイルを読み込んでデータベースを作成する

def read_file(filename): 
    thefile = open(filename) 
    data = [] 
    for line in thefile: 
     data.append(line) 
    thefile.close() 

    return data 



    Example database: 

{'Leonardo da Vinci': [('Mona Lisa', 1503,  
76.8, 53.0, 'oil paint', 'France'), ('The 
Last Supper', 1495, 460.0, 880.0, 'tempera',  
'Italy')]} 
+1

あなたのコードは非常に間違っています...ファイルが見つからない場合は、ディレクトリにいないことを意味します。そしてあなたのコードは非常に間違っています(私はすでにそれを言っていましたか?) –

+0

正確に何が間違っていますか?私はいくつかの研究を試みましたが、これを理解するために、file.write(line1)、thefile.write(\ n)、thefile.write(line2)などの代わりに行うことを考えました。 – n00bprogrammer22

+0

ファイルを読み取りモードで開くことはできません。そして、writeは引数をとります。そして、ループの中でファイルを閉じます。私は続けるべきですか? –

答えて

0

M:ファイルのヘッダ行であり、それはすべきではないときに私は今持っているコードは、ヘッダー行を読んでいる。ここ

コードの下に更新されたコードですあなたはこれのような何かをしたいですか?ファイルを開き(正しい場所が見つかると)、その行を累積してファイル内の行のセットを返します。

def read_file(filename): 
    thefile = open('file0.csv', 'r') 
    lines = [] 
    for line in thefile: 
     lines.append(line) 
    thefile.close() 

    return lines 
+0

「file0.csv」にはこのようなファイルやディレクトリがないというエラーが表示されています – n00bprogrammer22

+1

1)「file0.csv」はどのディレクトリにありますか? 2)あなたのPythonプログラムはどのディレクトリにありますか?場所1)と2)を比較する。あなたのプログラムが成功するには同じものでなければなりません。 – Ukimiku

1

のは、あなたのコードのちょうど最初の2行を見てみましょう:

def read_file(filename): 
    thefile = open('filename.csv') 

私はあなたがこのコードで複数のファイルを処理することができるようにしたいので、あなたができるようにしたい、と推測を呼び出すread_fileのファイル名の代わりにさまざまなファイル名を使用します。正しい?

OK、コード内の1つの欠点は、最初の行におけるは可変であるが、「filename.csv」がリテラルであることです。これは、ファイル名の最初の行に何を置いても、リテラルを変更しないことを意味します。二行目がなければならないであろうことを行うには、例えば、

thefile = open ('%s.csv' % filename, 'r') 

これは%sのの代わりにファイル名変数に何入れて、あなたが望むように見える何だろう。

あなたのスクリプト(Pythonコード)は1つのディスクフォルダまたはディレクトリにあるかもしれませんが、処理するファイルは別のフォルダまたはディレクトリにある可能性があります。ファイルを探す場所を教えずにスクリプトを実行すると、実行中のフォルダ内にあるとみなされます。ゲームの段階で、最も簡単なことは、Pythonスクリプトと必要なファイルをすべて同じフォルダに入れてから、同じフォルダで実行することです。

関連する問題