2017-03-23 8 views
0

は、私は次のコードは、そのファイルをプリントアウトしているが、それは私がそれPythonのfnmatch関数に変数を代入できませんか?

for file in os.listdir('C:\\Users\\####\\Documents\\Visual Studio 2015\\Projects\\Data\\'): 
    if fnmatch.fnmatch(file, '*.csv'): 
     scanReport = open(file) 
     scanReader = csv.reader(scanReport) 
+0

? 'scanReport'と' scanReader'は絶えず再割り当てされ、条件が成立するすべての繰り返しに上書きされます。 – Carcigenicate

+0

私は、フォルダ内の私が持っているcsvファイルは 'あなたが完全なパスを提供する必要が動作しません変数 – davidjbeiler

+0

' scanReport =オープン(ファイル)をファイルに割り当てることにしたいです。 –

答えて

1

fnmatchがない開くことができるように、変数のファイルに割り当てていない(とすることはできません)、適切にfileを拡大しますパス。ワイルドカードパターンテストです。

os.listdirないファイルパスファイルを返します。ファイル名に一致する(すでにそうであるように)が、あなたのソースディレクトリでos.path.joinを使用してopenへの完全なパスを提供します。

the_dir = r'C:\Users\####\Documents\Visual Studio 2015\Projects\Data' 
for file in os.listdir(the_dir): 
    if fnmatch.fnmatch(file, '*.csv'): 
     scanReport = open(os.path.join(the_dir,file)) 

または多分それは同時にフィルタ&絶対パスを取得するには、その場合にはglob.globを使用することをお勧めします。割り当てられていません何

import glob 
for file in glob.glob(r'C:\Users\####\Documents\Visual Studio 2015\Projects\Data\*.csv'): 
    scanReport = open(file) 
+0

おかげで – davidjbeiler

+0

たソリューション:(動作していないようでしたし、正確な問題は何ですか?!のおかげで働いた –

+0

を!私は昨夜グロブを見たが、今までの感謝を、それを試してみることができませんでした! – davidjbeiler

関連する問題