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中的类与实例
Apr 27 Python
python中os和sys模块的区别与常用方法总结
Nov 14 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
Sep 04 Python
Pycharm之快速定位到某行快捷键的方法
Jan 20 Python
Python3远程监控程序的实现方法
Jul 15 Python
python如何实现数据的线性拟合
Jul 19 Python
Python3中urlencode和urldecode的用法详解
Jul 23 Python
在Pytorch中使用样本权重(sample_weight)的正确方法
Aug 17 Python
pygame实现俄罗斯方块游戏(AI篇1)
Oct 29 Python
python实现拼图小游戏
Feb 22 Python
django rest framework 过滤时间操作
Jul 12 Python
Python如何实现Paramiko的二次封装
Jan 30 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
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
在php MYSQL中插入当前时间
2008/04/06 PHP
让PHP更快的提供文件下载的代码
2012/06/13 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
javascript 函数调用的对象和方法
2010/07/01 Javascript
JavaScript中的16进制字符(改进)
2011/11/21 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
jquery获取当前日期的方法
2015/01/14 Javascript
JS实现队列与堆栈的方法
2016/04/21 Javascript
微信小程序 this和that详解及简单实例
2017/02/13 Javascript
ES6实现的遍历目录函数示例
2017/04/07 Javascript
原生JS实现图片懒加载之页面性能优化
2019/04/26 Javascript
高效jQuery选择器的5个技巧实例分析
2019/11/26 jQuery
javascript设计模式 ? 原型模式原理与应用实例分析
2020/04/10 Javascript
javascript实现放大镜功能
2020/12/09 Javascript
python基础教程之基本内置数据类型介绍
2014/02/20 Python
Python实现在Linux系统下更改当前进程运行用户
2015/02/04 Python
Django rest framework工具包简单用法示例
2018/07/20 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
Python如何转换字符串大小写
2020/06/04 Python
python包的导入方式总结
2021/03/02 Python
Html5之title吸顶功能
2018/06/04 HTML / CSS
Casadei卡萨蒂官网:意大利奢侈鞋履品牌
2017/10/28 全球购物
请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
2015/07/16 面试题
电气工程和自动化自荐信范文
2013/12/25 职场文书
两只小狮子教学反思
2014/02/05 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
中秋寄语大全
2014/04/11 职场文书
安全教育月活动总结
2014/05/05 职场文书
伦敦奥运会的口号
2014/06/21 职场文书
通知范文怎么写
2015/04/16 职场文书
餐厅服务员管理制度
2015/08/05 职场文书
Spring Data JPA的Audit功能审计数据库的变更
2021/06/26 Java/Android
Java使用jmeter进行压力测试
2021/07/09 Java/Android