首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重新启动目录/在运行代码的过程中清除脚本中的一系列特定行

重新启动目录/在运行代码的过程中清除脚本中的一系列特定行
EN

Stack Overflow用户
提问于 2019-04-09 18:06:27
回答 1查看 26关注 0票数 0

我尝试将数据帧保存到csv文件,但使用子目录将其分配给时出现错误FileNotFoundError: [Errno 2] No such file or directory

使用绝对路径工作,然后运行所有内容,然后注释掉脚本的其余部分(不清除变量),然后只运行代码来保存数据帧,使用子目录工作。因此,我在保存数据帧之前使用的路径目录(在同一脚本中)会以某种方式影响它。

下面是我的脚本的一个非常通用的代码

代码语言:javascript
复制
check = "Data\\"
def my_function(directory):
    (myfunction)
    return allvars;

directories = [os.path.abspath(x[0]) for x in os.walk(check)]
directories.remove(os.path.abspath(check)) 

list_of_df = []
for i in directories:
    try:
        os.chdir(i)
        x = my_function(i)
        list_of_df .append(x)
    except(ValueError):
        continue

#specific savepath needed otherwise error!
savepath = 'MY_ABSOLUTE_PATH\\'
for a, b in enumerate(list_of_df ):
#    b.to_csv(savepath+dataframe{}.csv'.format(a)) #WORKS
    b.to_csv('Data\\Random\\dataframe{}.csv'.format(a)) #ERROR
EN

回答 1

Stack Overflow用户

发布于 2019-04-09 18:09:10

正如您所说,如果文件不存在,to_csv会创建该文件,但它不会创建不存在的目录。确保已先创建了要在其中保存文件的子目录。

我在工作中经常做这样的事情:

代码语言:javascript
复制
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)

如果您需要经常这样做,可以很容易地将其封装在一个函数中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55590223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档