-1

ディレクトリ内のすべてのファイルに対してコードを実行したいと考えています。コードは単一のファイルで正常に動作しますが、複数のファイルで反復しようとするとわかります

FileNotFoundError: [Errno 2] そのようなファイルまたはディレクトリはありません: 'file.xlsx'

directory = r"C:/Users/name/Desktop/folder/2018"
arrivals_aggregated = pd.DataFrame()

print(os.listdir(directory))
for filename in os.listdir(smt_directory):

    print('current file is ' + filename)
    x = pd.ExcelFile(filename)
    symbols = x_symbols(x)
    arv = x.parse(sheet_name='Arrivals', skiprows=5, usecols=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23])
    arrivals = x_arrivals(arv, x)

arrivals_aggregated.append(arrivals)

ディレクトリ内のすべてのファイルを反復処理し、結果を処理して大きなデータフレームarrivals_aggregatedに集約することを期待しています。代わりに、x = pd.ExcelFile(filename) で停止し、ファイルが見つからないことを示しています。

print('現在のファイルは ' + ファイル名)

コードを処理することなく、フォルダー内の最初のファイルで失敗しています。

4

1 に答える 1

1

これが機能するかどうかは、スクリプトを実行する場所によって異なります。スクリプトを実行したディレクトリに が存在しない場合filenameは、FileNotFoundError.

代わりに次のようにします。

x = pd.ExcelFile(os.path.sep.join([directory, filename]))

これにより、実際のファイルの場所をpd.ExcelFile.

于 2019-06-18T20:25:58.547 に答える