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 ...
随机推荐
- java中的类型转换
java中的类型转换分为两种 自动类型转换 要实现数据的自动类型转换必须同时满足下面两个条件 两种数据类型彼此兼容 目标类型的取值范围大于原类型范围 强制类型转换 当两种数据类型彼此不兼容,或者说目标 ...
- Windows Java安装
jdk安装与配置jdk for windows1.下载官网地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html2. ...
- 搭建apache本地服务器·Mac
1. 打开终端,开启Apache: //开启apache: sudo apachectl start //重启apache: sudo apachectl restart //关闭apache: su ...
- 在C#中GUID生成的四种格式
var uuid = Guid.NewGuid().ToString(); // 9af7f46a-ea52-4aa3-b8c3-9fd484c2af12 var uuidN = Guid.NewGu ...
- sql 查询所有作业的详情
DECLARE @WeekDays TABLE ( freq_interval INT, weekdays ) ) INSERT INTO @WeekDays ,N'星期日 ' UNION ALL , ...
- github爬虫100项目
为了更好的巩固所学,在github上开始100爬虫项目,记录学习过程,也希望对他人的学习有帮助,目前还在持续更新中,有兴趣可以看看 地址: https://github.com/mapyJJJ/100 ...
- Vue系列之 => webpack-babel的配置
安装 cnpm i babel-core@6.26.3 babel-loader@7.0.0 babel-plugin-transform-runtime -D cnpm i babel-preset ...
- 第一个Spring程序HelloWorld
对于初学者而言,任何理论化的讲解都比不上一个简单的HelloWorld,我们在学习Spring时也不外乎用最简单的HelloWorld程序来将这个灵活而又强大的轻量级框架推送到诸位面前.想要说明的是现 ...
- redis php操作命令
redis的五种存储类型的具体用法 String 类型操作 string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者 ...
- svn基础了解
Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的 ...