《Python Cookbook 3rd》笔记(5.12):测试文件是否存在
测试文件是否存在
问题
你想测试一个文件或目录是否存在。
解法
使用 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 getsizereturn os.stat(filename).st_size
PermissionError: [Errno 13] Permission denied: '/Users/guido/Desktop/foo.txt'
>>>
《Python Cookbook 3rd》笔记(5.12):测试文件是否存在相关推荐
- 《Python Cookbook 3rd》笔记(1.4):查找最大或最小的N个元素
<Python Cookbook 3rd>1.4:查找最大或最小的N个元素 问题 怎样从一个集合中获得最大或者最小的N个元素列表? 解法 heapq 模块有两个函数:nlargest()和 ...
- Python Cookbook 3rd Edition Documentation
Python Cookbook 3rd Edition Documentation 文章目录 第一章:数据结构和算法 1.1 解压序列赋值给多个变量 问题 解决方案 讨论 1.2 解压可迭代对象赋值给 ...
- Machine Learning with Python Cookbook 学习笔记 第8章
Chapter 8. Handling Images 前言 本笔记是针对人工智能典型算法的课程中Machine Learning with Python Cookbook的学习笔记 学习的实战代码都放 ...
- 中国大学MOOC实用Python程序设计学习笔记和课后测试1-3周(北京大学)
中国大学MOOC实用Python程序设计学习笔记和课后测试1-3周(北京大学) 第1周 Python初探 为project设置解释器 保留字 第1周课后测试题 第2周 基本运算.条件分支和输出格式控制 ...
- Machine Learning with Python Cookbook 学习笔记 第9章
Chapter 9. Dimensionality Reduction Using Feature Extraction 前言 本笔记是针对人工智能典型算法的课程中Machine Learning w ...
- 《Python cookbook》笔记二
<Python cookbook>笔记二 第二章 字符串和文本 -使用多个界定符分割字符串- 你需要将一个字符串分割为多个字段,但是分隔符 (还有周围的空格) 并不是固定 的. # str ...
- Machine Learning with Python Cookbook 学习笔记 第6章
Chapter 6. Handling Text 本笔记是针对人工智能典型算法的课程中Machine Learning with Python Cookbook的学习笔记 学习的实战代码都放在代码压缩 ...
- 《Python Cookbook 3rd》笔记汇总
文章目录 一.数据结构 二.字符串和文本 三.数字.日期和时间 四.迭代器与生成器 五.文件与IO 一.数据结构 标题 关键词 1.1:拆分序列后赋值给多个变量 可迭代对象.拆分赋值 1.2:拆分任意 ...
- 《Python cookbook》笔记一
<Python cookbook> 第一章 数据结构和算法 - *号解压多个变量 - 如果一个可迭代对象的元素个数超过变量个数时,会抛出一个 ValueError .那么 怎样才能从这个可 ...
最新文章
- method java_解析Java中的Field类和Method类
- 【操作系统】多线程与多任务的比较
- Mac备忘录笔记教学——强大的内置笔记软件
- apache通过rewrite限制某个目录
- 多重背包(二进制优化)
- 洛谷P1880 石子合并 区间动归
- gooflow 自定义流程图
- 人人商城小程序不能显示批发商品修复方法
- go :Multiple-value strconv.Atoi() (int, error) in single-value context
- 小米手机连接电脑只能看到部分相片_小米手机连接电脑后怎么看照片?
- CTS测试中的testSensorOperations项
- 基于stm32的数控恒压恒流电源设计方案
- 软件工程师的本手、妙手和俗手
- MBA面试系列之----中文面试宝典(一)
- Label Smoothing 标签平滑 (Label smooth regularization, LSR)
- php几点几面向对象,寸草不生的周六-PHP之面向对象(三)
- (创建型)2、原型模式(返回原对象的克隆体,不直接返回原对象)
- 脑动力PHP函数速查效率手册pdf
- iOS之常用第三方库的介绍
- gRPC教程 — grpc-gateway
热门文章
- mysql client 未开启_Django+mysqlclient未关闭数据库连接
- C#打开文件和文件夹
- 第十六节: EF的CodeFirst模式通过Fluent API修改默认协定
- [你必须知道的.NET] 第五回:深入浅出关键字---把new说透
- 与计算机相关的课外活动,课外活动学生论文,关于应用型院校计算机专业课外活动相关参考文献资料-免费论文范文...
- sum函数两个同行的元素相加_Excel函数公式大全:利用sum函数进行汇总以及对多个汇总进行求和...
- opencv获取图片像素坐标_利用OpenCV从图片中提取矩形并标注坐标(室内平面地图)(一)
- 使用函数求最大公约数 pta_高中数学选修教材2-导数第6课时《函数的单调性与导数》教学设计...
- 【JS 逆向百例】复杂的登录过程,最新微博登录逆向
- 算法--背包九讲(详细讲解+代码)