2017-05-03 53 views
0

私の現在の作業ディレクトリでは、私は私のpythonスクリプトを実行して、私は、ファイル 'genes.faa.genespercontig.csv'を含む複数のサブディレクトリを持っています。これらのファイルのパンダデータフレームを作成したいと思います。Pythonエラー。 os.walkでファイルを見つけることができません

私は私のスクリプトを実行すると、私はエラーを取得:次のように

FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\KLIF\\Documents\\Linda\\genes.faa.genespercontig.csv\\r' 

私のスクリプトは次のとおりです。

import os 
import pandas as pd 

for root, dirs, files in os.walk(os.getcwd()): 
    with open(os.path.join(root, 'genes.faa.genespercontig.csv', 'r')) as f1: 
     df1 = pd.read_csv('f1', header=None, delim_whitespace=True, names = ["contig", "genes"]) 
     print(df1) 

私は、ファイルがデサブディレクトリにあることを確信しているが、なぜPythonのことができますそれを見つけることはありませんか?

答えて

1

"r"が "genes.faa.genespercontig.csv"というディレクトリ内のファイルでない限り、単純な構文エラーです。

... 
with open(os.path.join(root, 'genes.faa.genespercontig.csv'), 'r') as f1: 
... 

はまた、あなたがファイルをサブディレクトリ内に含まれていると言うことを考えると、あなたはおそらくos.walk関数によって返さdirs変数内のサブディレクトリをループする必要があります。あなたの括弧は、わずかに調整する必要があります文字列'f1'を使用してpd.read_csvに渡しますが、おそらく開いているファイルオブジェクトが必要です。以下のような何か:

... 
filepath = os.path.join(root,subdir,'genes.faa.genespercontig.csv') 
if os.path.isfile(filepath): 
    with open(filepath, 'r') as f1: 
... 
+0

私はそれを調整するが、それはまだそれがファイル – Gravel

+0

@Gravelを追加しましたが見つからないというエラーを与える:

import os import pandas as pd for root, dirs, files in os.walk(os.getcwd()): for subdir in dirs: with open(os.path.join(root,subdir,'genes.faa.genespercontig.csv'),'r') as f1: df1 = pd.read_csv(f1, header=None, delim_whitespace=True, names = ["contig", "genes"]) print(df1) 

実際に存在するファイルを開くための唯一の試み、使用することをもっと詳しく。あなたのディレクトリ構造がわからないので、テストされていませんが、あなたの質問に提供された詳細に基づいています。 –

+0

はい、これは機能します。どうもありがとう!私がそれを必要とすれば;このファイルを含んでいないサブディレクトリがある場合、何をすべきかアドバイスできますか?私がサブディレクトリをループして、スクリプトがサブディレクトリ内のファイルを見つけることができないとき、それは停止し、次のサブディレクトリよりも継続したいと思うので。 – Gravel

関連する問題