如何在Python当前工作目录自动建文件夹保存DataFrame为CSV文件
实现方案
你可以通过动态获取当前运行环境的路径实现跨设备无修改运行,下面提供两种常用实现方案:
方案1:基于os模块(兼容所有Python版本)
直接用os.getcwd()获取Python当前工作目录的绝对路径,再拼接你预设的存储文件夹名即可,无需写死固定路径:
import os import pandas as pd # 动态获取当前工作目录 current_work_dir = os.getcwd() # 自定义存储文件夹名,可根据需求修改,不需要写绝对路径 save_dir = "exported_dataframes" # 拼接得到完整的存储目录路径 outdir = os.path.join(current_work_dir, save_dir) # 目录不存在则创建 if not os.path.exists(outdir): os.mkdir(outdir) # 拼接csv文件路径导出 outname = 'name.csv' fullname = os.path.join(outdir, outname) df.to_csv(fullname)
方案2:基于pathlib模块(推荐,Python3.4+支持)
pathlib是Python官方推荐的路径处理库,自动适配不同操作系统的路径分隔符,代码更简洁,还支持直接判断目录存在性、递归创建目录:
from pathlib import Path import pandas as pd # 直接基于当前工作目录创建存储目录对象,可修改exported_dataframes为你想要的文件夹名 outdir = Path.cwd() / "exported_dataframes" # exist_ok=True表示目录已存在也不会报错,parents=True可支持创建多级嵌套目录 outdir.mkdir(exist_ok=True, parents=True) # 直接拼接文件名导出 df.to_csv(outdir / "name.csv")
补充说明
如果你希望文件始终存储在脚本文件所在的目录,而不是运行脚本时的工作目录(比如你在其他目录下调用执行该脚本的场景),可以将路径获取逻辑替换为基于__file__变量:
- os模块版本:
current_work_dir = os.path.dirname(os.path.abspath(__file__)) - pathlib版本:
outdir = Path(__file__).parent / "exported_dataframes"
两种方案都不需要手动修改路径参数,在Windows、macOS、Linux设备上都可以直接运行。
内容的提问来源于stack exchange,提问作者Michael J. Erickson
相关产品推荐
相关产品推荐

