博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python标准库03 路径与文件 (os.path包, glob包)
阅读量:4931 次
发布时间:2019-06-11

本文共 1470 字,大约阅读时间需要 4 分钟。

 

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

 

路径与文件的简介请参看

 

os.path包

os.path包主要是处理路径字符串,比如说'/home/vamei/doc/file.txt',提取出有用信息。

import os.pathpath = '/home/vamei/doc/file.txt' print(os.path.basename(path)) # 查询路径中包含的文件名 print(os.path.dirname(path)) # 查询路径中包含的目录 info = os.path.split(path) # 将路径分割成文件名和目录两个部分,放在一个表中返回 path2 = os.path.join('/', 'home', 'vamei', 'doc', 'file1.txt') # 使用目录名和文件名构成一个路径字符串 p_list = [path, path2] print(os.path.commonprefix(p_list)) # 查询多个路径的共同部分

此外,还有下面的方法:

os.path.normpath(path)   # 去除路径path中的冗余。比如'/home/vamei/../.'被转化为'/home'

 

os.path还可以查询文件的相关信息(metadata)。文件的相关信息不存储在文件内部,而是由操作系统维护的,关于文件的一些信息(比如文件类型,大小,修改时间)。

import os.path path = '/home/vamei/doc/file.txt' print(os.path.exists(path)) # 查询文件是否存在 print(os.path.getsize(path)) # 查询文件大小 print(os.path.getatime(path)) # 查询文件上一次读取的时间 print(os.path.getmtime(path)) # 查询文件上一次修改的时间 print(os.path.isfile(path)) # 路径是否指向常规文件 print(os.path.isdir(path)) # 路径是否指向目录文件

 (实际上,这一部份类似于Linux中的ls命令的某些功能)

 

glob包

glob包最常用的方法只有一个, glob.glob()。该方法的功能与Linux中的ls相似(参看),接受一个Linux式的文件名格式表达式(filename pattern expression),列出所有符合该表达式的文件(与正则表达式类似),将所有文件名放在一个表中返回。所以glob.glob()是一个查询目录下文件的好方法。

该文件名表达式的语法与不同 (你可以同时看一下fnmatch包,它的功能是检测一个文件名是否符合Linux的文件名格式表达式)。 如下:

Filename Pattern Expression      Python Regular Expression

*                                .*

?                                .

[0-9]                            same

[a-e]                            same

[^mnp]                           same

 

我们可以用该命令找出/home/vamei下的所有文件:

import globprint(glob.glob('/home/vamei/*'))

 

总结

文件系统

os.path

glob.glob

转载于:https://www.cnblogs.com/ching2009/p/5081449.html

你可能感兴趣的文章
菜鸟入门【ASP.NET Core】11:应用Jwtbearer Authentication、生成jwt token
查看>>
ODP操作procedure
查看>>
关于ie6,7body overflow:hidden失效的问题....
查看>>
【BZOJ】【3524】【POI2014】Couriers
查看>>
Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)
查看>>
Spark学习笔记——手写数字识别
查看>>
python使用progressbar显示进度条
查看>>
一步一步学Silverlight 2系列(12):数据与通信之WebClient
查看>>
19 存储过程
查看>>
“冷面杀手”王励勤赢了
查看>>
Ubuntu下自动挂载Windows分区的方法
查看>>
页面自动刷新的几种方式
查看>>
WebIM(5)----将WebIM嵌入到页面中
查看>>
Datagridview列绑定数据
查看>>
[转]如何高效利用GitHub
查看>>
lougu P1048 采药 | 01背包
查看>>
Maven小结
查看>>
【HDOJ 5726】GCD(RMQ+二分)
查看>>
QTP 学习 - 参数化
查看>>
phpcms搭建环境
查看>>