试图将多个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 orders开头的所有XLSB文件。
发布于 2022-02-04 09:40:53
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")使用模式进行搜索
另一种方法是使用格罗布搜索与模式匹配的文件。您仍然需要生成完整的路径:
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")发布于 2022-02-04 09:40:15
当您执行month = pd.read_excel(filename, sheet_name="Raw data ", engine="pyxlsb")时,请尝试将其替换为以下内容:
month = pd.read_excel(path + filename, sheet_name="Raw data ", engine="pyxlsb")
这将在给定目录中为您的文件名提供路径。
https://stackoverflow.com/questions/70984147
复制相似问题