Power BI中运行Python自动获取最新CSV脚本报错求助
问题分析
你的代码在Jupyter正常但Power BI报错,核心原因是os.listdir(path)返回的是仅文件名,而非完整文件路径。当你用os.path.getmtime(file)时,系统会在Power BI的当前工作目录下查找该文件,而非你指定的path目录,因此触发FileNotFoundError。Jupyter中正常是因为它的当前工作目录恰好和path一致,但Power BI的工作目录不同。
修复后的代码
import os import pandas as pd path = r'C:/Users/myname/OneDrive/folder/' # 生成包含完整路径的CSV文件列表 csv_files = [os.path.join(path, file) for file in os.listdir(path) if file.endswith('.csv')] # 先检查是否存在CSV文件,避免空列表报错 if not csv_files: raise FileNotFoundError("指定文件夹中未找到任何CSV文件") # 基于完整路径获取最新文件 most_recent_file = max(csv_files, key=os.path.getmtime) df = pd.read_csv(most_recent_file) df # Power BI需要返回DataFrame才能识别
关键修改点
- 将CSV文件列表改为完整路径:
os.path.join(path, file)确保每个元素都是带路径的文件名,os.path.getmtime能正确找到文件。 - 添加空列表检查:避免文件夹中无CSV时
max()函数报错。 - 最后返回DataFrame:Power BI需要Python脚本输出可识别的数据集,所以必须返回读取后的DataFrame。
额外说明
如果你之前用固定路径能正常运行,是因为固定路径本身包含完整路径,系统能直接定位到文件。修改后的代码无需每次改路径,满足自动化需求。
内容的提问来源于stack exchange,提问作者E_Sarousi
相关产品推荐
相关产品推荐

