解析
列表解析、字典解析、集合解析
浏览本地文件系统的模块:
1 os
2 os.path
3 glob
os模块:获取(和修改)本地目录、文件进程、环境变量等信息
os.path模块:包含了操作路径名、文件名和目录名的函数(拼接、分隔等)
glob 模块利用shell风格的通配符,获得一个目录的内容
处理文件和目录
当前工作目录 ----> 加入到搜索路径中的目录或者切换当前目录到新的目录,新目录变成新的当前工作目录
os模块
import os:导入os模块
os.getcwd():获取当前工作目录
os.chdir():切换当前工作目录 (可以使用linux风格的路径)
处理文件名和目录名
os.path模块:包含了操作路径名、文件名和目录名的函数(拼接、分隔等)
os.path.join():将一个或者多个路径片段构造成一个路径名(可以接受任意数量的参数)
os.path.expanduser('~'):输出系统的home路径名
os.path.split():传入完整路径名,返回元组,包括文件目录和文件名
os.path.splitext():传入文件名,返回元组,包括短文件名(不包括文件扩展)和文件扩展名
罗列目录内容
glob 模块利用shell风格的通配符,获得一个目录的内容
import glob
glob.glob() 传入一个通配符,返回列表,所有匹配的文件和目录的路径。
获取文件元信息
文件元信息:创建时间,最后修改时间,文件大小等
import os
metadata = os.stat():返回多种文件元信息的对象
metadata.st_mtime:最后修改时间(时间格式化:time.localtime(),返回时间结构体)
metadata.st_size:文件大小
构造绝对路径
os.path.realpath():返回一个从根目录开始或者是包含盘符的绝对路径
列表解析
A列表 --func() --> B列表
例子:
>>> a_list = [1, 2, 3, 4] >>>[elem * 2 for elem in a_list] [2, 4, 6, 8]
注意:
1 请从右向左看。 a_list 是你要映射的列表。Python 解释器逐个访问 a_list 的元素,并临时将元素赋值给变量 elem。 然后 Python 对元素应用函数 elem * 2 并且将结果添加到返回列表中。
2 列表解析创建新的列表,不会覆盖旧列表
3 可以把列表解析的结果(新列表)赋值给旧列表
4 可以在列表解析的最后加入if子句来过滤列表
5 可以构造元组列表
字典解析
>>> import glob >>> import os >>> metadata_dict = {f:os.stat(f) for f in glob.glob('test*.py')} >>> os.chdir('D:\pythonTest') >>> metadata_dict = {f:os.stat(f) for f in glob.glob('test*.py')} >>> type(metadata_dict) <class 'dict'> >>> list(metadata_dict.keys()) ['test01.py', 'test02.py', 'test03.py', 'test04.py', 'test05.py', 'test06.py'] >>>
跟列表解析的不同:
1 花括号包围
2 冒号分隔两个表达式,冒号前是键,冒号后是值
交换字典的键值
集合解析
与字典解析不同的是:
1 集合只有值而没有键值对
注意:
1 可以在集合解析的最后加入if子句来过滤列表
2 集合解析的输入可以是任何序列
参考文档:
dive into python 3
python372.chm