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的Bottle框架的一些使用技巧介绍
Apr 08 Python
利用python打印出菱形、三角形以及矩形的方法实例
Aug 08 Python
在python 中实现运行多条shell命令
Jan 07 Python
深入了解Python枚举类型的相关知识
Jul 09 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
Aug 27 Python
Python英文文章词频统计(14份剑桥真题词频统计)
Oct 13 Python
在Python中使用turtle绘制多个同心圆示例
Nov 23 Python
Python利用matplotlib绘制约数个数统计图示例
Nov 26 Python
tensorflow 初始化未初始化的变量实例
Feb 06 Python
python实现图像外边界跟踪操作
Jul 13 Python
python如何编写类似nmap的扫描工具
Nov 06 Python
python获取对象信息的实例详解
Jul 07 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
一个用mysql_odbc和php写的serach数据库程序
2006/10/09 PHP
LAMP环境使用Composer安装Laravel的方法
2017/03/25 PHP
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
node.js中的fs.truncateSync方法使用说明
2014/12/15 Javascript
Javascript基础之数组的使用
2016/05/13 Javascript
js选项卡的制作方法
2017/01/23 Javascript
从零学习node.js之mysql数据库的操作(五)
2017/02/24 Javascript
js清除浏览器缓存的几种方法
2017/03/15 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
2017/05/22 Javascript
PHP 实现一种多文件上传的方法
2017/09/20 Javascript
vue2.0在table中实现全选和反选的示例代码
2017/11/04 Javascript
微信小程序picker组件简单用法示例【附demo源码下载】
2017/12/05 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
jquery分页插件pagination使用教程
2018/10/23 jQuery
PHP实现基于Redis的MessageQueue队列封装操作示例
2019/02/02 Javascript
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
2019/05/07 Javascript
Vue3.0结合bootstrap创建多页面应用
2019/05/28 Javascript
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
2019/08/27 jQuery
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
JavaScript Event Loop相关原理解析
2020/06/10 Javascript
浅谈Ant Design Pro 菜单自定义 icon
2020/11/17 Javascript
[01:31:03]DOTA2完美盛典全回顾 见证十五项大奖花落谁家
2017/11/28 DOTA
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
深入讨论Python函数的参数的默认值所引发的问题的原因
2015/03/30 Python
python实现简易通讯录修改版
2018/03/13 Python
Python生成器generator用法示例
2018/08/10 Python
python:按行读入,排序然后输出的方法
2019/07/20 Python
python中取绝对值简单方法总结
2020/07/24 Python
Python自动化测试中yaml文件读取操作
2020/08/20 Python
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
2016/01/27 HTML / CSS
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
社区精神文明建设汇报材料
2014/08/17 职场文书
导游词之河姆渡遗址博物馆
2019/10/10 职场文书
go goroutine 怎样进行错误处理
2021/07/16 Golang
开机音效回归! Windows 11重新引入开机铃声
2021/11/21 数码科技
Python通过loop.run_in_executor执行同步代码 同步变为异步
2022/04/11 Python