《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 .那么 怎样才能从这个可 ...
最新文章
- if __name__ == __main__
- python单词意思-python 前面几个单词含义
- linux系统vsftpd登陆慢卡怎么办
- Windows内核实验004 API调用
- 如何开发 Node.js Native Add-on?
- 【转载】单片机应用系统断电时的数据保护方法
- WordPress后台保护插件 Sabre 和 电子商务插件E - commerce GetShopped
- 自学编程的八大误区!克服它们,豁然开朗!
- Robotframework--随机选取下拉框的字段值进行搜索
- 中美印日四国程序员比较[转自http://www.myexception.cn]
- Eclipse Tips(1):增强智能感知
- WDF框架下 硬盘的虚拟
- VOD崛起《暮光之城》带动电影同步发行模式
- 我分析了2837首歌曲,做了个信息检索与信息抽取系统
- 每天15分钟,就能轻松告别拖延症
- 确定自动驾驶汽车安全评估指标的挑战
- Pale Blue Dot/暗淡蓝点------Carl Sagan/卡尔萨根
- tp5学习记录:导入前端静态模板
- Windos环境下kafka配置启动Zookeeper时,报错:Invalid config, exiting abnormally.
- DCOS之k8s的容器监测探针
热门文章
- 【转】CT层厚、层间距、层间隔的概念是什么,MRI的层厚、层间距、曾间隔是什么
- 【转】ABP源码分析二:ABP中配置的注册和初始化
- 【转】.NET框架简介
- 【转】掀起Azure AD的盖头来——深入理解Microsoft Graph应用程序和服务权限声明
- [你必须知道的.NET]第二十五回:认识元数据和IL(中)
- 如何学习(记住)linux命令(常用选项)
- 一步步编写操作系统 11 实模式下程序分段的原因
- 由浅到深理解ROS(2)
- 【LeetCode-SQL每日一练】—— 1179. 重新格式化部门表
- 【Python学习】 - Pandas学习 sort_value( ),sort_index( )排序函数的区别与使用