这个错误一般出现在 nfs 文件系统中,本人在用 flask 写了一个文件下载程序,在下载完成之后,会有一步删除临时文件,该临时文件所在的文件系统为 nfs,于是就遇到了如上错误。经过查阅资料发现,这是 nfs 系统引起的。在打开一个文件时,nfs 文件系统会在文件所在的目录生成一个 .nfs 文件,如果有文件描述符为关闭,这时去删除文件所在的目录,就会发生如上错误。

我当时调用的是 flask 的 send_file 函数来实现文件下载的。

try:

response = make_response(send_file(os.path.join(tmp_dir,file_name)))

response.headers["Content-Disposition"] = "attachment;filename=%s"%file_name

return response

finally:

shutil.rmtree(tmp_dir)

我觉得,在我删除文件时, send_file 函数未释放打开的文件描述符,所以会报如上错误。

可以选择在 shutil.rmtree(os.path.join(tmp_dir),ignore_errors=True) 或

commands.getstatusoutput("rm -rf %s"% tmp_dir) 来忽略错误,但是无论哪种方法,如果文件描述符未关闭,此文件所在的文件夹都是无法删掉的。

参考:

http://stackoverflow.com/questions/11228079/python-remove-directory-error-file-exists

https://github.com/hashdist/hashdist/issues/113

python oserror errorno 39_shutil.rmtree 函数 OSError: [Errno 39] Directory not empty: 错误原因相关推荐

  1. python invalid argument_python使用open的OSError: [Errno 22] Invalid argument错误

    这两天在写一个新闻类的spider时,遇到了OSError: [Errno 22] Invalid argument这个错误,苦恼的两天,无果.后来通过请教学长,发现原来是打开的文件名中含有一些系统的 ...

  2. Python常用模块2-Python的OS及errno模块

    文章目录 一.Python OS及errno模块简介 1.1 OS模块介绍 1.2 errno模块 二.Python的OS及errno模块实操 参考 一.Python OS及errno模块简介 以下整 ...

  3. python的进程池map函数_python进程池map

    python进程池怎么实现 当进程池中任务队列非空时,才会触发worker进程去工作,那么如何向进程池中的任务队列中添加任务呢,进程池类有两组关键方法来创建任务,分别是apply/apply_asyn ...

  4. [转载] (三)Python关键字和内置函数

    参考链接: Python中的数学函数 4(特殊函数和常量) 一.Python的关键字 和其他语言一样,关键字有特殊含义,并且关键字不能作为变量名.函数名.类名等标识符. 快速查看关键字的方法除了上cs ...

  5. imagenet数据格式以及python文件处理的一些函数

    val_0.JPEG是图片的名称,n03444034是图片所属的类,整理这个文件是想把所有的文件按类归类,即以n03444034为文件名,文件中是以val_0.JPEG为代表的图片,即将图片分类 va ...

  6. 简单介绍python的input,print,eval函数

    这篇文章主要为大家概述了python的input,print,eval函数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助 input()函数 input()函数可以通过控制台 ...

  7. 教你如何运用python实现简单文件读写函数

    这篇文章主要为大家详细介绍了python实现简单文件读写函数,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 python作为脚本性语言,加上它的简便易用性.会经常当作脚 ...

  8. python绘制条形图用什么函数_Python绘制正余弦函数图像完整代码

    通过python绘制正弦和余弦函数,从默认的设置开始,一步一步地调整改进,让它变得好看,变成我们初高中学习过的图象那样.通过这个过程来学习如何进行对图表的一些元素的进行调整. 01. 简单绘图 mat ...

  9. Python使用numpy中trim_zeros函数去除首尾0值的语法

    Python使用numpy中trim_zeros函数去除首尾0值的语法 目录 Python使用numpy中trim_zeros函数去除首尾0值的语法 #numpy中trim_zeros

最新文章

  1. 个人银行账户管理程序
  2. TokuDB介绍——本质是分形树(一个叶子4MB)+缓存减少写操作
  3. python三十:time模块
  4. java中List与Map的使用
  5. java redisson_Java使用Redisson分布式锁实现原理
  6. 设计模式之_Strategy_04
  7. 开源视频会议bigbluebutton
  8. hdu 1525 Euclid‘s Game
  9. 万兆网卡实际吞吐量_AKITIO 10G/NBASE-T PCIe 网卡开箱拆解评测
  10. python---保留两位小数
  11. AC日记——可能的路径 51nod 1247
  12. 计算一路话音消耗的带宽
  13. 美图手机告别文,写得真好!
  14. 西宾喜马拉雅语音下载工具(ximalayadown)
  15. CSS实现气泡对话框
  16. 如何将 CHM 文件翻译成中文
  17. C++程序设计:相反数
  18. day19 482 合唱队形 (线性DP)
  19. [ 树形DP ] BZOJ4987
  20. python对于会计的好处_学好会计学的作用及意义

热门文章

  1. pywinauto 连接已经打开的程序 如:微信
  2. 人群分析综述--Crowd Scene Understanding from Video: A Survey
  3. LeetCode 1108. Defanging an IP Address--C++,Python解法
  4. CentOS 7安装使用Github
  5. 如何提升计算机内存,怎么提高电脑物理内存
  6. 更新elementui图标不显示_超简单elementui主题及变量修改方案
  7. 计算机中的机器码就是二进制数,高电单片机习题(答案)
  8. 自建mysql和华为云mysql_自建数据库和云数据库区别和使用(以MySQL为例)
  9. 计算机上配置的网卡 实质上是,()计算机上配置的网卡,实质上是_ ___。
  10. pandas转mysql特定列_在pandas.DataFrame.to_sql时指定数据库表的列类型