Python将DataFrame导出CSV到网络驱动器路径报Errno 2如何解决
问题解决方法
- 路径转义错误:Windows系统下网络共享对应的UNC路径格式为
\\服务器名\共享名\路径,但Python普通字符串中反斜杠为转义字符,你代码中写的'\\networkdrive\folder1\subfolder1'实际会被解析为\networkdrive\folder1\subfolder1,缺少开头的一个反斜杠,不属于合法UNC路径。
解决方案二选一:- 给路径字符串加
r前缀声明为原始字符串,不会对反斜杠做转义处理:r'\\networkdrive\folder1\subfolder1' - 直接用正斜杠作为路径分隔符,Python在Windows环境下也可正常识别:
'//networkdrive/folder1/subfolder1'
- 给路径字符串加
- 父目录不存在/无访问权限:
os.path.join仅负责拼接路径字符串,不会自动创建不存在的中间目录,也不会校验路径权限。
解决步骤:- 先在Windows资源管理器地址栏输入你拼接后的完整网络路径,确认可以正常打开、可以新建文件,排除路径不存在、账号无读写权限的问题
- 若确认路径需要新建,在执行
to_csv前添加创建目录的代码:
# 自动创建不存在的父目录,已存在时不会报错 os.makedirs(os.path.dirname(savePath), exist_ok=True) - 管理员权限运行导致映射盘不可见:如果你的网络路径是先映射为了本地驱动器盘符(比如Z盘),且脚本是用管理员权限启动的,Windows默认会隔离普通用户和管理员账号的挂载盘符,导致管理员账号看不到映射的网络盘。
解决方案:直接用完整UNC路径访问,不要用映射后的盘符,或者修改系统配置让管理员账号可访问普通用户挂载的网络盘。
修正后可运行代码示例
import os import pandas as pd # 用原始字符串声明UNC路径 savePath = os.path.join(r'\\networkdrive\folder1\subfolder1', 'file_name.csv') # 提前创建父目录 os.makedirs(os.path.dirname(savePath), exist_ok=True) df.to_csv(savePath, index=False, header=True)
内容的提问来源于stack exchange,提问作者mhooper
相关产品推荐
相关产品推荐

