python 学习笔记 4 ----> dive into python 3
解析
列表解析、字典解析、集合解析
浏览本地文件系统的模块:
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
python 学习笔记 4 ----> dive into python 3的更多相关文章
- python 学习笔记 5 ----> dive into python 3
字符串 文本:屏幕上显示的字符或者其他的记号 计算机认识的东西:位(bit)和字节(byte) 文本的本质:某种字符编码方式保存的内容. 字符编码:一种映射(显示的内容 ----> 内存.磁盘 ...
- python 学习笔记 3 ----> dive into python 3
Python内置数据类型 注意: Python可以不需要声明变量的数据类型.它是根据变量的初始赋值情况分析数据类型,并在内部跟踪变量. 比较重要的数据类型: 1 布尔型(Booleans):True. ...
- python 学习笔记 2 ----> dive into python 3
Python Shell idle的使用 >>> >>>help() ----> help> 可以在help这个工具中查找Python内置函数的文档等等 ...
- python学习笔记:安装boost python库以及使用boost.python库封装
学习是一个累积的过程.在这个过程中,我们不仅要学习新的知识,还需要将以前学到的知识进行回顾总结. 前面讲述了Python使用ctypes直接调用动态库和使用Python的C语言API封装C函数, C+ ...
- [Python学习笔记][第七章Python文件操作]
2016/1/30学习内容 第七章 Python文件操作 文本文件 文本文件存储的是常规字符串,通常每行以换行符'\n'结尾. 二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用笔 ...
- [Python学习笔记][第五章Python函数设计与使用]
2016/1/29学习内容 第四章 Python函数设计与使用 之前的几页忘记保存了 很伤心 变量作用域 -一个变量已在函数外定义,如果在函数内需要修改这个变量的值,并将这个赋值结果反映到函数之外,可 ...
- [Python学习笔记][第四章Python字符串]
2016/1/28学习内容 第四章 Python字符串与正则表达式之字符串 编码规则 UTF-8 以1个字节表示英语字符(兼容ASCII),以3个字节表示中文及其他语言,UTF-8对全世界所有国家需要 ...
- Python学习笔记:第一天python基础
目录 1. python简介 2. python的安装 3. 编写第一个helloword 4. 变量和常量 5. 数据类型 6. 输入 7. if语句 1. python简介 python是在198 ...
- Python学习笔记(四)Python程序的控制结构
在学习了 Python 的基本数据类型后,我们就要开始接触Python程序的控制结构,了解 Python 是如何使用控制结构来更改程序的执行顺序以满足多样的功能需求.如果有的小伙伴在之前学过C语言,j ...
随机推荐
- Mybatis框架(未完待续)
1.框架概述: 它是我们软件开发中的一套解决方案,不同的框架解决的是不同的问题.好处:框架封装了很多的细节,使开发者可以使用极简的方式实现功能.大大提高开 ...
- Leetcode: Number Complement
Given a positive integer, output its complement number. The complement strategy is to flip the bits ...
- Qt QLabel QTextBrowser 实现网址链接
勾选属性: 并且编辑网址链接: QLabel--点击text属性的...: QTextBrowser--双击控件
- 自动化运维工具——ansile详解
自动化运维工具——ansible详解(一) 目录 ansible 简介 ansible 是什么? ansible 特点 ansible 架构图 ansible 任务执行 ansible 任务执行模式 ...
- awk if print
awk -F"," '{ if($4=="abc" && $5=="def"){print $1} else {prin ...
- Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined)
C 模拟 题意:给的是一个矩形,然后√2 的速度走,如果走到边上就正常反射,走到角上,暂停反射,我们知道要不循环要不暂停,记录走到的点最短时间 /*************************** ...
- MyBatis探究-----核心配置文件mybatis-config.xml中配置mappers的几种方式
1.package name="映射文件所在包名" 必须保证接口名(例如IUserDao)和xml名(IUserDao.xml)相同,还必须在同一个包中 例如:<packag ...
- css的扩展技术
CSS的扩展技术 (在原来的CSS语言的基础上扩展了js,可以在里面写js ) 一.less 定义: @color:red; //定义颜色 @body-color:blue; @div-color:y ...
- Dubbo的异常处理
记一次Dubbo的异常处理过程. 现象:业务团队报送,服务端定义一个BuinessException,继承与RunTimeException,服务端执行时抛出该异常,但是客户端捕捉不到该异常. 记录: ...
- JavaScript--鼠标滚动改变图片大小
鼠标滚动改变图片的大小: 原理:当鼠标滚动时改变了zoom的值: <!DOCTYPE HTML> <html> <head> <title>通过鼠标滚轮 ...