Pandas脚本跨电脑生成CSV失败及文件找不到问题求助
问题原因及解决办法
核心原因
- 相对路径的基准是当前工作目录,不是脚本目录:Python里使用相对路径(比如
'empty_list.csv')时,文件的读写路径是以运行脚本时的当前工作目录为起点,而非脚本本身所在的文件夹。你同事大概率是在和脚本所在文件夹不同的路径下启动的脚本——比如终端打开脚本时,终端的当前路径不是脚本文件夹,或者IDE默认工作目录没设对,导致CSV文件生成在了他的当前工作目录里,而非脚本所在的文件夹,所以后续open找不到。 - 可能存在隐性写入失败:如果脚本所在文件夹没有写入权限,
to_csv会静默失败(Pandas默认不抛出致命错误),导致DataFrame正常创建但文件没生成。
解决办法
用脚本绝对路径固定文件位置
获取脚本自身的目录,拼接文件名,确保生成和读取的是同一个路径:import os import pandas as pd # 获取脚本所在目录的绝对路径 script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接CSV文件的完整路径 csv_full_path = os.path.join(script_dir, 'empty_list.csv') # 生成CSV df.to_csv(csv_full_path, index=False) # 读取CSV with open(csv_full_path, "rb") as empty_data: # 执行后续操作 pass检查并修正当前工作目录
可以在脚本开头加一行代码,让同事确认运行时的工作目录:import os print("当前工作目录:", os.getcwd())如果输出不是脚本所在文件夹,要么让同事切换到脚本目录后再运行,要么在IDE的设置里把工作目录改为脚本所在的文件夹。
开启错误捕获排查权限问题
在to_csv时显式开启错误抛出,确认是否存在权限问题:df.to_csv('empty_list.csv', index=False, errors='raise')如果是权限问题,会直接抛出错误,方便定位。
内容的提问来源于stack exchange,提问作者Madal
相关产品推荐
相关产品推荐

