测试文件是否存在

问题

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

解法

使用 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):测试文件是否存在相关推荐

  1. 《Python Cookbook 3rd》笔记(1.4):查找最大或最小的N个元素

    <Python Cookbook 3rd>1.4:查找最大或最小的N个元素 问题 怎样从一个集合中获得最大或者最小的N个元素列表? 解法 heapq 模块有两个函数:nlargest()和 ...

  2. Python Cookbook 3rd Edition Documentation

    Python Cookbook 3rd Edition Documentation 文章目录 第一章:数据结构和算法 1.1 解压序列赋值给多个变量 问题 解决方案 讨论 1.2 解压可迭代对象赋值给 ...

  3. Machine Learning with Python Cookbook 学习笔记 第8章

    Chapter 8. Handling Images 前言 本笔记是针对人工智能典型算法的课程中Machine Learning with Python Cookbook的学习笔记 学习的实战代码都放 ...

  4. 中国大学MOOC实用Python程序设计学习笔记和课后测试1-3周(北京大学)

    中国大学MOOC实用Python程序设计学习笔记和课后测试1-3周(北京大学) 第1周 Python初探 为project设置解释器 保留字 第1周课后测试题 第2周 基本运算.条件分支和输出格式控制 ...

  5. Machine Learning with Python Cookbook 学习笔记 第9章

    Chapter 9. Dimensionality Reduction Using Feature Extraction 前言 本笔记是针对人工智能典型算法的课程中Machine Learning w ...

  6. 《Python cookbook》笔记二

    <Python cookbook>笔记二 第二章 字符串和文本 -使用多个界定符分割字符串- 你需要将一个字符串分割为多个字段,但是分隔符 (还有周围的空格) 并不是固定 的. # str ...

  7. Machine Learning with Python Cookbook 学习笔记 第6章

    Chapter 6. Handling Text 本笔记是针对人工智能典型算法的课程中Machine Learning with Python Cookbook的学习笔记 学习的实战代码都放在代码压缩 ...

  8. 《Python Cookbook 3rd》笔记汇总

    文章目录 一.数据结构 二.字符串和文本 三.数字.日期和时间 四.迭代器与生成器 五.文件与IO 一.数据结构 标题 关键词 1.1:拆分序列后赋值给多个变量 可迭代对象.拆分赋值 1.2:拆分任意 ...

  9. 《Python cookbook》笔记一

    <Python cookbook> 第一章 数据结构和算法 - *号解压多个变量 - 如果一个可迭代对象的元素个数超过变量个数时,会抛出一个 ValueError .那么 怎样才能从这个可 ...

最新文章

  1. method java_解析Java中的Field类和Method类
  2. 【操作系统】多线程与多任务的比较
  3. Mac备忘录笔记教学——强大的内置笔记软件
  4. apache通过rewrite限制某个目录
  5. 多重背包(二进制优化)
  6. 洛谷P1880 石子合并 区间动归
  7. gooflow 自定义流程图
  8. 人人商城小程序不能显示批发商品修复方法
  9. go :Multiple-value strconv.Atoi() (int, error) in single-value context
  10. 小米手机连接电脑只能看到部分相片_小米手机连接电脑后怎么看照片?
  11. CTS测试中的testSensorOperations项
  12. 基于stm32的数控恒压恒流电源设计方案
  13. 软件工程师的本手、妙手和俗手
  14. MBA面试系列之----中文面试宝典(一)
  15. Label Smoothing 标签平滑 (Label smooth regularization, LSR)
  16. php几点几面向对象,寸草不生的周六-PHP之面向对象(三)
  17. (创建型)2、原型模式(返回原对象的克隆体,不直接返回原对象)
  18. 脑动力PHP函数速查效率手册pdf
  19. iOS之常用第三方库的介绍
  20. gRPC教程 — grpc-gateway

热门文章

  1. mysql client 未开启_Django+mysqlclient未关闭数据库连接
  2. C#打开文件和文件夹
  3. 第十六节: EF的CodeFirst模式通过Fluent API修改默认协定
  4. [你必须知道的.NET] 第五回:深入浅出关键字---把new说透
  5. 与计算机相关的课外活动,课外活动学生论文,关于应用型院校计算机专业课外活动相关参考文献资料-免费论文范文...
  6. sum函数两个同行的元素相加_Excel函数公式大全:利用sum函数进行汇总以及对多个汇总进行求和...
  7. opencv获取图片像素坐标_利用OpenCV从图片中提取矩形并标注坐标(室内平面地图)(一)
  8. 使用函数求最大公约数 pta_高中数学选修教材2-导数第6课时《函数的单调性与导数》教学设计...
  9. 【JS 逆向百例】复杂的登录过程,最新微博登录逆向
  10. 算法--背包九讲(详细讲解+代码)