嘗試將多個 XLSB 檔案轉換為 CSV。不知道這里有什么問題
import os
import pandas as pd
path = r'C://Users//greencolor//Autoreport//Load_attachments//'
for filename in os.listdir(path):
if filename.startswith("PB orders"):
print(filename) #until here its working
month = pd.read_excel(filename, sheet_name="Raw data ", engine="pyxlsb")
print(month) # I get the error here
month = month[month['Sales Manager'] == 'DEVON, JOHN'] #filtering by manager
month.to_csv (path filename ".csv", index = None, header=True)
錯誤
FileNotFoundError:[Errno 2] 沒有這樣的檔案或目錄:'PB 訂單 Dec.xlsb'
為什么我會收到此錯誤?print(filename) 正在列印名稱以 PB 訂單開頭的所有 XLSB 檔案
uj5u.com熱心網友回復:
filename只是檔案名,而不是完整路徑。您需要將其與path獲取檔案的完整路徑相結合。您可以使用os.path.join以安全的方式執行此操作:
import os
...
for filename in os.listdir(path):
if filename.startswith("PB orders"):
full_path = os.path.join(path, filename)
print(full_path )
month = pd.read_excel(full_path , sheet_name="Raw data ", engine="pyxlsb")
使用模式搜索
另一種方法是使用glob搜索與模式匹配的檔案。您仍然需要生成完整路徑:
import glob
...
for filename in glob.glob("PB orders*.xlsb", root_dir=path):
full_path = os.path.join(path, filename)
print(full_path )
month = pd.read_excel(full_path , sheet_name="Raw data ", engine="pyxlsb")
避免臨時檔案
您仍然需要檢查檔案名以避免有人打開 Excel 檔案時生成的臨時檔案(以 開頭的檔案~):
for filename in glob.glob("PB orders*.xlsb", root_dir=path):
if not os.path.basename(filename).startswith("~"):
full_path = os.path.join(path, filename)
print(full_path )
month = pd.read_excel(full_path , sheet_name="Raw data ", engine="pyxlsb")
uj5u.com熱心網友回復:
當你month = pd.read_excel(filename, sheet_name="Raw data ", engine="pyxlsb")嘗試用這個替換它時:
month = pd.read_excel(path filename, sheet_name="Raw data ", engine="pyxlsb")
這將在給定目錄中添加檔案名的路徑。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/423439.html
標籤:
