Python 如何测试文件是否存在


Posted in Python onJuly 31, 2020

问题

你想测试一个文件或目录是否存在。

解决方案

使用 os.path 模块来测试一个文件或目录是否存在。比如:

>>> import os
>>> os.path.exists('/etc/passwd')
True
>>> os.path.exists('/tmp/spam')
False
>>>

你还能进一步测试这个文件时什么类型的。 在下面这些测试中,如果测试的文件不存在的时候,结果都会返回False:

>>> # Is a regular file
>>> os.path.isfile('/etc/passwd')
True

>>> # Is a directory
>>> os.path.isdir('/etc/passwd')
False

>>> # Is a symbolic link
>>> os.path.islink('/usr/local/bin/python3')
True

>>> # Get the file linked to
>>> os.path.realpath('/usr/local/bin/python3')
'/usr/local/bin/python3.3'
>>>

如果你还想获取元数据(比如文件大小或者是修改日期),也可以使用 os.path 模块来解决:

>>> os.path.getsize('/etc/passwd')
3669
>>> os.path.getmtime('/etc/passwd')
1272478234.0
>>> import time
>>> time.ctime(os.path.getmtime('/etc/passwd'))
'Wed Apr 28 13:10:34 2010'
>>>

讨论

使用 os.path 来进行文件测试是很简单的。 在写这些脚本时,可能唯一需要注意的就是你需要考虑文件权限的问题,特别是在获取元数据时候。比如:

>>> os.path.getsize('/Users/guido/Desktop/foo.txt')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.3/genericpath.py", line 49, in getsize
    return os.stat(filename).st_size
PermissionError: [Errno 13] Permission denied: '/Users/guido/Desktop/foo.txt'
>>>

以上就是Python 如何测试文件是否存在的详细内容,更多关于Python 测试文件的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
举例讲解Python中的算数运算符的用法
May 13 Python
Python内置模块ConfigParser实现配置读写功能的方法
Feb 12 Python
Ubuntu下Anaconda和Pycharm配置方法详解
Jun 14 Python
如何使用Python标准库进行性能测试
Jun 25 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
Apr 27 Python
python编写一个会算账的脚本的示例代码
Jun 02 Python
python3的pip路径在哪
Jun 23 Python
pandas to_excel 添加颜色操作
Jul 14 Python
Node.js 和 Python之间该选择哪个?
Aug 05 Python
python中delattr删除对象方法的代码分析
Dec 15 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
Feb 01 Python
Python PIL按比例裁剪图片
May 11 Python
Python高并发解决方案实现过程详解
Jul 31 #Python
Python如何执行精确的浮点数运算
Jul 31 #Python
Python使用shutil模块实现文件拷贝
Jul 31 #Python
Python基于pyjnius库实现访问java类
Jul 31 #Python
Python如何将字符串转换为日期
Jul 31 #Python
Python在字符串中处理html和xml的方法
Jul 31 #Python
python中selenium库的基本使用详解
Jul 31 #Python
You might like
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
PHP中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
PHP+redis实现的购物车单例类示例
2019/02/02 PHP
Laravel框架实现超简单的分页效果示例
2019/02/08 PHP
利用XMLHTTP传递参数在另一页面执行并刷新本页
2006/10/26 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
js switch case default 的用法示例介绍
2013/10/23 Javascript
JavaScript运行机制之事件循环(Event Loop)详解
2014/10/10 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
2014/12/12 Javascript
谈谈JavaScript类型系统之Math
2016/01/06 Javascript
Javascript中apply、call、bind的巧妙使用
2016/08/18 Javascript
Angular 1.x个人使用的经验小结
2017/07/19 Javascript
JavaScript 中Date对象的格式化代码方法汇总
2017/09/06 Javascript
vue router demo详解
2017/10/13 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
vue 监听某个div垂直滚动条下拉到底部的方法
2018/09/15 Javascript
react中Suspense的使用详解
2019/09/01 Javascript
利用JS响应式修改vue实现页面的input值
2019/09/02 Javascript
Python3字符串学习教程
2015/08/20 Python
Python中字符串的常见操作技巧总结
2016/07/28 Python
动感网页相册 python编写简单文件夹内图片浏览工具
2016/08/17 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
PyQt Qt Designer工具的布局管理详解
2019/08/07 Python
详解python 降级到3.6终极解决方案
2020/02/06 Python
Python 存取npy格式数据实例
2020/07/01 Python
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
2020/03/18 HTML / CSS
台湾演唱会订票网站:StubHub台湾
2019/06/11 全球购物
比较基础的php面试题及答案-编程题
2012/10/14 面试题
如何利用XMLHTTP检测URL及探测服务器信息
2013/11/10 面试题
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
中学生国旗下讲话稿
2014/04/26 职场文书
专题组织生活会方案
2014/06/15 职场文书
先进班组事迹材料
2014/12/25 职场文书
2015年民兵整组工作总结
2015/07/24 职场文书
信息技术研修心得体会
2016/01/08 职场文书