解析

列表解析、字典解析、集合解析

浏览本地文件系统的模块:

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的更多相关文章

  1. python 学习笔记 5 ----> dive into python 3

    字符串 文本:屏幕上显示的字符或者其他的记号 计算机认识的东西:位(bit)和字节(byte) 文本的本质:某种字符编码方式保存的内容. 字符编码:一种映射(显示的内容  ----> 内存.磁盘 ...

  2. python 学习笔记 3 ----> dive into python 3

    Python内置数据类型 注意: Python可以不需要声明变量的数据类型.它是根据变量的初始赋值情况分析数据类型,并在内部跟踪变量. 比较重要的数据类型: 1 布尔型(Booleans):True. ...

  3. python 学习笔记 2 ----> dive into python 3

    Python Shell idle的使用 >>> >>>help() ----> help> 可以在help这个工具中查找Python内置函数的文档等等 ...

  4. python学习笔记:安装boost python库以及使用boost.python库封装

    学习是一个累积的过程.在这个过程中,我们不仅要学习新的知识,还需要将以前学到的知识进行回顾总结. 前面讲述了Python使用ctypes直接调用动态库和使用Python的C语言API封装C函数, C+ ...

  5. [Python学习笔记][第七章Python文件操作]

    2016/1/30学习内容 第七章 Python文件操作 文本文件 文本文件存储的是常规字符串,通常每行以换行符'\n'结尾. 二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用笔 ...

  6. [Python学习笔记][第五章Python函数设计与使用]

    2016/1/29学习内容 第四章 Python函数设计与使用 之前的几页忘记保存了 很伤心 变量作用域 -一个变量已在函数外定义,如果在函数内需要修改这个变量的值,并将这个赋值结果反映到函数之外,可 ...

  7. [Python学习笔记][第四章Python字符串]

    2016/1/28学习内容 第四章 Python字符串与正则表达式之字符串 编码规则 UTF-8 以1个字节表示英语字符(兼容ASCII),以3个字节表示中文及其他语言,UTF-8对全世界所有国家需要 ...

  8. Python学习笔记:第一天python基础

    目录 1. python简介 2. python的安装 3. 编写第一个helloword 4. 变量和常量 5. 数据类型 6. 输入 7. if语句 1. python简介 python是在198 ...

  9. Python学习笔记(四)Python程序的控制结构

    在学习了 Python 的基本数据类型后,我们就要开始接触Python程序的控制结构,了解 Python 是如何使用控制结构来更改程序的执行顺序以满足多样的功能需求.如果有的小伙伴在之前学过C语言,j ...

随机推荐

  1. Mybatis框架(未完待续)

    1.框架概述:                        它是我们软件开发中的一套解决方案,不同的框架解决的是不同的问题.好处:框架封装了很多的细节,使开发者可以使用极简的方式实现功能.大大提高开 ...

  2. Leetcode: Number Complement

    Given a positive integer, output its complement number. The complement strategy is to flip the bits ...

  3. Qt QLabel QTextBrowser 实现网址链接

    勾选属性: 并且编辑网址链接: QLabel--点击text属性的...:  QTextBrowser--双击控件

  4. 自动化运维工具——ansile详解

    自动化运维工具——ansible详解(一) 目录 ansible 简介 ansible 是什么? ansible 特点 ansible 架构图 ansible 任务执行 ansible 任务执行模式 ...

  5. awk if print

    awk  -F","  '{ if($4=="abc" && $5=="def"){print $1} else {prin ...

  6. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined)

    C 模拟 题意:给的是一个矩形,然后√2 的速度走,如果走到边上就正常反射,走到角上,暂停反射,我们知道要不循环要不暂停,记录走到的点最短时间 /*************************** ...

  7. MyBatis探究-----核心配置文件mybatis-config.xml中配置mappers的几种方式

    1.package name="映射文件所在包名" 必须保证接口名(例如IUserDao)和xml名(IUserDao.xml)相同,还必须在同一个包中 例如:<packag ...

  8. css的扩展技术

    CSS的扩展技术 (在原来的CSS语言的基础上扩展了js,可以在里面写js ) 一.less 定义: @color:red; //定义颜色 @body-color:blue; @div-color:y ...

  9. Dubbo的异常处理

    记一次Dubbo的异常处理过程. 现象:业务团队报送,服务端定义一个BuinessException,继承与RunTimeException,服务端执行时抛出该异常,但是客户端捕捉不到该异常. 记录: ...

  10. JavaScript--鼠标滚动改变图片大小

    鼠标滚动改变图片的大小: 原理:当鼠标滚动时改变了zoom的值: <!DOCTYPE HTML> <html> <head> <title>通过鼠标滚轮 ...