嗨:我正在尝试使用Pandas
DataFrame.to_csv
方法将dataframe
保存到csv
文件中:
filename = './dir/name.csv'
df.to_csv(filename)
但是我收到了错误:
IOError: [Errno 2] No such file or directory: './dir/name.csv'
to_csv
方法是否能够创建文件(如果它不存在)?这就是我打算做的事情。
答案 0 :(得分:24)
to_csv
会创建该文件,但它不会创建不存在的目录。确保首先创建了您尝试保存文件的子目录。
我经常在工作中做这样的事情:
import os
outname = 'name.csv'
outdir = './dir'
if not os.path.exists(outdir):
os.mkdir(outdir)
fullname = os.path.join(outdir, outname)
df.to_csv(fullname)
如果您需要经常这样做,可以很容易地将其包含在函数中。
答案 1 :(得分:6)
这是使用出色的标准库pathlib
模块执行此操作的另一种方法,这通常会使事情变得更整洁。
如其他地方所述,to_csv
将创建文件(如果该文件不存在),但是 不会 文件路径中不存在的目录,因此您需要首先确保这些目录存在。
from pathlib import Path
output_file = 'my_file.csv'
output_dir = Path('long_path/to/my_dir')
output_dir.mkdir(parents=True, exist_ok=True)
df.to_csv(output_dir / output_file) # can join path elements with / operator
设置parents=True
还将创建任何必要的父目录,而exist_ok=True
表示如果该目录已经存在,则不会引发错误,因此您不必单独进行明确检查。 / p>
答案 2 :(得分:0)
当我不小心在请求保存路径时添加了 file://
时出现了这个错误。由于搜索将我带到这里,可能对某人也有帮助。