2016-04-06 9 views
0

を働いていません。コードは、端末上のファイルを見たいときに機能しますが、すべてTEST_Files.xlsxを1つのTest4.xlsxに追加しようとするとエラー(トレースバック)が発生します。がディレクトリから複数のExcelファイルを読み込む - Pythonのコードは、私は、ディレクトリ(。ESP <code>Test_File.xlsx</code>)からのすべての優れファイルを読み込むしようとしている

すると、エラーメッセージ:

File "Excel_Script3.py", line 16, in <module> 
    data = pd.read_excel(filename, 'Sheet1') 
    File "/Users/ItsMyFuckingSystem/miniconda3/lib/python3.5/site-packages/pandas/io/exce‌​l.py", line 163, in read_excel 
    io = ExcelFile(io, engine=engine) 
    File "/Users/ItsMyFuckingSystem/miniconda3/lib/python3.5/site-packages/pandas/io/exce‌​l.py", line 206, in init 
    self.book = xlrd.open_workbook(io) 
    File "/Users/ItsMyFuckingSystem/miniconda3/lib/python3.5/site-packages/xlrd/__init__.py‌​", line 394, in open_workbook 
    f = open(filename, "rb") 
FileNotFoundError: [Errno 2] No such file or directory: 'Test_File_1.xlsx' 
+0

あなたが正確にどのようなエラーを取得していますか? –

+0

エラーはトレースバックです。私は同じフォルダ内のすべてのExcelファイルを読み込むことができますが、ディレクトリ全体からExcelを読み込むとすぐに、それがネジ止めされます。 – Aditya

+0

ファイルを見つけられなかったり、ファイルを開くことができなかったり、エラーを見ることなくデータフレームにデータを追加できなかったかどうかは分かりません。 – Conor

答えて

1

次のコードは、フルパスを含むファイル名を示します。あなたのコードでは、ファイル名を2回使用しています(dirsに1回、ファイル名に1回)。ファイル名にはパス情報は含まれていませんが、rootは行います。参照してください : https://docs.python.org/2/library/os.html

import os 

for root, dirs, files in os.walk(".", topdown=False): 
    for filename in files: 
     if filename.endswith('.xlsx') and filename.startswith('Test_File'): 
      print (os.path.join(root, filename)) 
0

あなたはあなたの内側のループで二回ファイルを読み取ろう:

... 
data = pd.read_excel(filename, 'Sheet1') 
print(os.path.join(root, filename)) 
data = pd.read_excel(filename, 'Sheet1') 
... 

最初のものは、すべてのファイルがルートディレクトリにある場合は冗長であるが、両方それらがサブディレクトリにある場合、失敗します。私は次のようにします:

... 
full_filename = os.path.join(root, filename) 
data = pd.read_excel(full_filename, 'Sheet1') 
... 
関連する問題