导图社区 如何快速入门python
python快速入门需要掌握哪些基础知识?一张思维导图带你了解,本图包含字符串、列表、元组、字典、集合、内建函数、文件操作与os模块等基础知识。附带实例解读,帮助新人快速入门!
编辑于2019-03-03 14:51:23字符串,列表,元组,字典,集合,内建函数,文件操作与os模块
字符串
定义方式
单引号定义
''
双引号定义
""
三引号定义
'''内容 '''或者 """内容"""
操作
+ 连接运算
* 复制运算
[] 索引操作
取片/分片操作
元字符串
字符格式化
% 格式化操作
基本格式:字符串 % 格式化使用的数据
占位符号
%d 要格式化一个整型
%p 使用十六进制格式化变量地址
%s 要格式化一个字符串
%c 要格式化一个ascii码
%u 要格式化一个无符号整型 效果同%d
%f 要格式化一个浮点型(默认小数点后6位)
%x 要格式化一个无符号的十六进制数
%X 要格式化一个无符号的十六进制数(大写)
%e 要格式化一个科学记数法的浮点型
%E 效果和%e一样
%o 要格式化一个无符号的八进制整型
精度设定:(例子)
%.5f 表示精确到小数点后5位
宽度设定:(例子)
%8s 表示格式化之后的字符是8位不够位数填充空格
对其方式设定:(例子)
%长度s 不设定的时候左侧填充,内容靠右
%-长度s 设定-,右侧填充,内容靠左
零填充效果:(例子)
%0长度d 不够的长度使用0填充而不是默认的空格
正负号显示效果:
%+d 表示整数显示 +值,负数显示-值
[.],[-],[+],[0] 这些符号有个名称,叫做标表
format函数格式化操作(3.6以上)
基本格式:
变量.format(参数,参数,....)
限定符号:(必须在:后面使用)
对齐相关:参数位置:填充符号对齐符号总长度 1:#>20
< 左对齐
^ 居中对齐
> 右对齐
进制转换符号:
d 十进制
b 二进制
o 八进制
x 十六进制
精度限定符号:
.2f 表示小数点后保留2位
金融限定符号:
, 表示数字从右向左,每三位数添加一个逗号(整数部分)
字符串函数
与英文相关的,大小写转换的函数
1.upper() 将字符串中所有小写字母转换为大写
字符串.uopper()
2.lower() 将字符串中所有大写字母转化为小写
字符串.lower()
3.swapcase() 将字符串中大小写字母进行互换
字符串.swapcase()
4.title() 将字符串中的字母进行标题化处理(每个单词首字母大写)
字符串.title()
5.capitalize() 将字符串中第一个字母变为大写 首字母大写函数
字符串.captialize()
字符串查找相关的函数
1.index() 从字符串左侧开始向右查找指定字符第一次出现的位置(找不到字符串报错)
字符串.index(查找的字符串)
字符串.index(查找的字符串,开始索引,结束索引)
字符串.index(查找的字符串,开始索引)
2.rindex() 从字符串右侧开始向左查找指定字符第一次出现的位置(找不到字符串报错)
字符串.rindex(查找的字符串)
字符串.rindex(查找的字符串,开始索引,结束索引)
字符串.rindex(查找的字符串,开始索引)
3.find() 和index一样(找不到字符串返回-1)
字符串.find(查找的字符串)
字符串.find(查找的字符串,开始索引,结束索引)
字符串.find(查找的字符串,开始索引)
4.rfind() 和rindex一样(找不到字符串返回-1)
字符串.rfind(查找的字符串)
字符串.rfind(查找的字符串,开始索引,结束索引)
字符串.rfind(查找的字符串,开始索引)
判断相关的字符串函数
1.isupper() 检测字符串是否都是大写字母组成
变量.isupper()
2.islower() 检测字符串是否都是小写字母组成
变量.islower()
3.istitle() 检测字符串是否符合标题要求
变量.istitle()
4.isalnum() 检测字符串是否由数字和字母及文字组成
变量.isalnum()
5.isalpha() 检测字符串是否由字母和文字组成
变量.isalpha()
6.isdigit() 检测字符串是否由10进制字符组成(数字)
变量.isdigit()
7.isnumeric()检测字符串是否由数字字符组成(数字)
变量.isnumeric()
8.isspace() 检测字符串是是否由空白字符(不可见字符)组成
变量.isspace()
9.startswith() 检测字符串是否以指定的字符串开头
变量.startswith('检测的字符串')
10.endswith() 检测字符串是否以指定的字符串结尾
变量.endswith('检测的字符串')
字符串操作相关函数
1.split() 使用特定的字符串切割字符串
变量.split(切割的字符)
变量.split(切割的字符,切割次数)
2.join() 使用特定字符串将容器数据连接成一个字符串
特定字符串.join(容器)
3.zfill() zero fill 零填充效果
变量.zfill(整个字符串的长度)
4.center() 使用指定的字符将字符串填充到指定的长度,原有内容居中对齐
变量.center(填充长度)
变量.center(填充长度,填充字符)
5.ljust()使用指定的字符将字符串填充到指定的长度,原有内容靠左对齐
变量.ljust(填充长度)
变量.ljust(填充长度,填充字符)
6.rjust()使用指定的字符将字符串填充到指定的长度,原有内容靠右对齐
变量.rjust(填充长度)
变量.rjust(填充长度,填充字符)
7.strip() 去除字符串左右两侧指定的连续字符
变量.strip() 默认去除左右两侧空格字符
变量.strip(去除的指定字符串)
8.lstrip()去除字符串左侧指定的连续字符
变量.lstrip() 默认去除左右两侧空格字符
变量.lstrip(去除的指定字符串)
9.rstrp()去除字符串右侧指定的连续字符
变量.rstrip() 默认去除左右两侧空格字符
变量.rstrip(去除的指定字符串)
10.replace() 字符串的替换操作
变量.replace('被替换的字符串','替换成的字符串')
变量.replace('被替换的字符串','替换成的字符串',替换次数)
字符集
多种字符的集合就是字符集。
bytes类型
与字符串类型相似的一种数据类型,与字符相关!
bytes类型和string类型的相互转换
字符串.encode() 将字符串编码成bytes类型
bytes.decode() 将bytes类型解码成字符串类型
列表
列表就是一组有序数据的组合。列表中的数据可以修改
声明
声明一个空列表: 变量 = [] 或者 变量 = list()
声明带有数据的列表:
变量 = [值,值,值....]
变量 = list(容器类数据) 本质上就是类型转换
基本操作
访问列表中的值:变量[索引]
修改列表中的值:变量[索引] = 新值
删除列表中的值:del 变量[索引]
添加列表中的值:不可以使用索引直接增加
删除变量:del 变量
分片操作
基本格式:
变量[开始索引:结束索引] 从开始索引获取到结束索引之前(不包含结束索引)
变量[开始索引:] 从开始索引位置截取到最后
变量[:结束索引] 从开头截取到结束索引之前(不包含结束索引)
变量[:] 截取整个列表内容
高级格式:
变量[开始索引:结束索引:跳步值]
列表的分片赋值:(不能设置跳步值)可以实现列表的增删改查操作
1.增加内容
变量[开始索引:结束索引] = 列表数据 (注意开始索引与结束索引一直,在指定索引之前增加内容)
2.删除内容
变量[开始索引:结束索引] = [] (删除了开始索引到结束索引之间的数据,不包含结束索引位置)
3.修改内容
变量[开始索引:结束索引] = 列表数据 (一般保持删除多少,添加多少,就是修改操作)
其他运算
* 列表乘法运算【序列相乘运算】
+ 列表加法运算【序列相加运算】
in 和 not in 成员检测运算
遍历
for..in
while
推导式
采用表达式的方式直接过滤数据并且返回新的列表的操作
基本推导式:
结果变量 = [变量 for 变量 in 列表]
带判断条件的推导式:
结果变量 = [变量 for 变量 in 列表 条件表达式]
多循环列表推导式:
结果变量 = [变量1 运算 变量2 for 变量1 in 列表1 for 变量2 in 列表2]
带判断条件的多循环推导式:
结果变量 = [变量1 运算 变量2 for 变量1 in 列表1 for 变量2 in 列表2 条件表达式]
常用函数
max() 获取列表中的最大值或者多个参数中的最大值
max(值,值,...)
max(列表)
min() 获取列表中的最小值或者多个参数中的最小值
min(列表)
min(值,值,...)
len()获取容器类数据的长度
len(容器类数据)
list() 声明列表或者将其他容器类数据转换为列表
相关的函数
append() 在列表的最后添加一个数据
列表.append(值)
index() 获取某个值在列表中的索引
列表.index(值)
pop() 在列表的指定索引位置删除数据
列表.pop()
列表.pop(索引位置)
remove() 在列表中删除指定数据
列表.remove(值)
clear() 清空列表
列表.clear()
insert() 在列表的指定索引之前添加数据
列表.insert(索引位置,值)
count() 计算列表中指定数据出现的次数
列表.count(值)
extend() 将2个列表合并位1个
列表.extend(列表)
reverse() 列表反转
列表.reverse()
sort() 列表排序
1.直接排序
copy() 复制列表
列表.copy()
元组
一组有序数据的组合。元组不可以修改
定义
空元组:
变量 = () 或者 变量= tuple()
单个元素的元组
变量 = (值,)
具有多个数据的元组
变量 = (值,值....) 或者 变量 = tuple(容器数据)
基本操作
只可以使用索引访问元组,不可以进行其他操作
分片
操作和列表一致
遍历
同列表一样,嵌套元组和嵌套列表也一致
推导式
元组推导式的结果不是元组,而是生成器(生成器需要操作才会得到结果)
语法同列表推导式一样
基本推导式:
结果变量 = (变量 for 变量 in 元组)
专用函数
index() 获取指定的值在元组中的索引
元组.index(值)
count() 获取指定的值在元组中出现的次数
元组.count(值)
常用函数
#max() 获取元组中的最大值
#min() 获取元组中的最小值
#len() 获取元组中数据格式
#tuple() 创建元组或者将其他数据转化为元组
字典
由键值组成的无序数据的组合。
字典的键必须是不可以改变的类型。 常用的就是字符串,整型,浮点型,用于区分字典中值的标识和索引一个作用
定义
1.方法1:常见
变量 = {键:值,键:值,键:值,键:值...}
2.方法2:
变量 = dict(形参 = 值,形参=值...)
3.方法3:数据类型转换
变量 = dict(符合条件的嵌套容器) #容器必须是列表或者元组
4.方法4:
变量 = dict(zip(键的容器,值的容器))#容器必须是列表或者元组
字典操作
访问字典中的值:
字典[键]
给字典添加值
字典[新键] = 新值
修改字典中的值
字典[已存在的键] = 新值
删除字典中的值
del 字典[键]
序列操作
因为字典数据类型没有索引,所以无法使用分片,索引操作
字典类型没有乘法与加法运算
成员检测:
in 变量 = '键' in 变量
not in 变量 = '键' note in 变量
常用函数
max() 获取字典中键的最大值
min() 获取字典中键的最小值
len() 获取字典的长度
dict() 创建字典类型或者将其他数据类型转换为字典
遍历
1.基本格式
for 变量 in 字典: 循环内容
注意:该循环中变量获取的是字典的键而非值,如果要获取值 使用字典[键变量]
2.仅仅遍历键
for 变量 in 字典.keys(): 循环内容
3.仅仅遍历值
for 变量 in 字典.values(): 循环内容
4.同时遍历键和值
for 变量1,变量2 in 字典.items(): 循环内容
推导式
#基本推导式
变量 ={变量1:变量2 for 变量1,变量2 in 字典.items()}
#带有判断条件的推导式
变量 ={变量1:变量2 for 变量1,变量2 in 字典.items() 条件表达式}
#多循环的字典推导式
变量 = {变量1 + 变量a : 变量2 + 变量b for 变量1,变量2 in 字典1.items() for 变量a,变量b in 字典2.items()}
#多循环的字典推导式
变量 = {变量1 + 变量a : 变量2 + 变量b for 变量1,变量2 in 字典1.items() for 变量a,变量b in 字典2.items() 条件表达式}
字符串格式化字典
字符串字符串%(字典的键)s字符串字符串字符串 % 字典
专用的函数
clear() 清空字典
字典.clear()
get() 获取字典中的值
字典.get(键) 获取指定键对应的值,找不到返回None
字典.get(键,默认值)获取指定键对应的值,找不到返回默认值
fromkeys() 使用指定的键容器制作一个字典
字典.fromkeys(键的容器,值)
keys() 获取字典中的键组成新的容器
字典.keys()
values() 获取字典中的值组成新的容器
字典.values()
copy() 复制字典
字典.copy()
pop() 根据键删除指定的值
字典.pop(键)
字典.pop(键,默认值)
popitem() 随机删除字典的一个数据
字典.popitem()
setdefault() 向字典中添加数据
字典.setdefult(键,值) 如果键不存在则添加,已存在不进行任何操作
update() 修改字典中的值,加入键不存在则会添加内容
字典.update(键 = 值,键 = 值...)
字典.update({键:值,键:值键:值...})
items() 获取字典的中的键和值组成嵌套容器
字典.items()
集合
确定的一组无序数据的组合
集合没有添加,获取,删除及修改的【基本操作】!
特征
1.确定的? 集合数据的数据不会相同
2.由多个数据组成的复合型数据(容器类数据)
3.集合是没有顺序的
操作
创建集合
空集合
变量 = set()
创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
具有多个数据的集合
变量 = {数据,数据,数据...}
集合的序列操作
成员检测
in
数据 in 集合
not in
数据 not in 集合
集合的序列函数
len() 检测容器的长度
max() 获取容器中的最大值
min() 获取容器中的最小值
set() 创建空集合或者将其他数据类型转换为集合
遍历
只能使用for...in 来遍历集合
for 变量 in 集合: 循环内容
推导式
普通的集合推导式:
变量 = {变量 for 变量 in 集合}
带有判断条件的集合推导式
变量 = {变量 for 变量 in 集合 if 条件表达式}
多循环的集合推导式:
变量 = {变量1和变量2的操作 for 变量1 in 集合1 for 变量2 in 集合2}
带有判断条件的多循环推导式:
变量 = {变量1和变量2的操作 for 变量1 in 集合1 for 变量2 in 集合2 if 条件表达式}
专用的函数
add() 向集合中添加一个元素/数据
格式:集合.add(数据)
返回值:None
注意:操作直接修改原有集合。
pop() 随机删除集合中的一个元素/数据
格式:集合.pop()
返回值:随机删除的数据
注意:操作直接修改原有集合。
remove() 删除指定的数据,数据不存在会报错
格式:集合.remove(数据)
返回值:None
注意:操作直接修改原有集合。
discard() 删除指定的数据,数据不存在不进行操作
格式:集合.discard(数据)
返回值:None
注意:操作直接修改原有集合。
clear() 清空集合
格式:集合.clear()
返回值:None
注意:操作直接修改原有集合。
copy() 复制集合
格式:集合.copy()
返回值:None
注意:复制的集合和原集合内容一样,但是不是一个集合
运算函数
差集:difference()
格式:集合1.difference(集合2)
返回值:差集的集合
对称差集更新运算:symmetric_difference_update()
格式:集合1.symmetric_difference_update(集合2)
返回值:None
注意:计算对称差集的结果直接更新到集合1的变量当中
交集:intersection()
格式:集合1.intersection(集合2)
返回值:交集的集合
交集更新:intersection_update()
格式:集合1.intersection_update(集合2)
返回值:None
注意:更新交集,就是计算交集之后将结果重新赋值给第一个集合的变量
并集:union()
格式:集合1.union(集合2)
返回值:并集结果
更新差集:difference_update()
格式:集合1.difference_update(集合2)
返回值:None
注意:所谓更新差集,就是计算差集之后将结果重新赋值给第一个集合的变量而已
检测是否是超集:issuperset()
格式:集合1.issuperset(集合2)
返回值:布尔值
检测是否是子集:issubset()
格式:集合1.issubset(集合2)
返回值:布尔值
检测是否不相交的函数: isdisjoint()
格式:集合1.isdisjoint(集合2)
返回值:布尔值
注意:集合不相交结果为True,集合相交,结果为False
对称差集:symmetric_difference()
格式:集合1.symmetric_difference(集合2)
返回值:对称差集的集合
并集更新:update()
格式:集合1.update(集合2)
返回值:None
注意:更新并集,就是计算并集之后将结果重新赋值给第一个集合的变量
冰冻集合/固定集合:一旦创建就不可以进行修改的集合。一种数据类型。
作用
为集合的操作提供一个不可以改变的对照集合
冰冻集合除了不能修改之外,其余和集合一样
创建冰冻集合
空的冰冻集合:
变量 = frozenset()
创建具有数据的冰冻集合
变量 = frozenset(容器数据)
函数
copy() 可以使用
symmetric_difference_update()不可以使用
difference_update() 不可以使用
intersection() 可以使用
intersection_update()不可以使用
union() 可以使用
difference() 可以使用
issupterset() 可以使用
issubset()可以使用
isdisjoint()可以使用
symmetric_difference()可以使用
update()不可以使用
内建函数
系统启动python的时候就加载并且可以使用的函数
类型转换相关:
int() 将其他数据类型转换为整型
float() 将其他数据类型转换为浮点型
bool() 将其他数据类型转换为布尔值
complex() 将其他数据类型转换为复数
list() 创建空列表,或者将其他数据类型转换为列表
tuple() 创建空元组,或者将其他数据类型转换为元组
dict() 创建空字典,或者将其他数据类型转换为字典
str() 将其他数据类型转换为字符串
变量相关
id() 获取数据的id标识
type() 获取数据的类型字符串
print() 打印数据
locals() 打印当前环境中的所有变量,常用于检测某个变量是否声明,结果是字典
数学相关
abs() 获取一个数据的绝对值
变量 = abs(数据)
sum() 计算一个容器的数据的和
变量 = sum(容器)
max() 获取的最大值
变量 = max(容器数据)
变量 = max(数据1,数据2....)
min() 获取最小值
变量 = min(容器数据)
变量 = min(数据1,数据2....)
pow() 计算一个数值的N次方
变量 = pow(底数,次方数)
round() 对一个数值进行四舍五入操作
变量 = round(数值)
注意:round函数操作时,如果是N.5的数值,采取N奇数进一,N偶数舍弃的操作
range() 产生一个连续数据的生成器
格式1:产生从0到指定数据之间的所有连续整数,不包含结束值
变量 = range(结束值)
格式2:产生从开始值到结束值之间的所有连续整数,不包含结束值
变量 = range(开始值,结束值)
格式3:产生从开始值到结束值之间的所有整数,使用跳步值增加的整数(跳步值默认为1)
变量 = range(开始值,结束值,跳步值)
进制转换
bin() 将数值转换为2进制字符串
变量 = bin(数值)
oct() 将数值转换为8进制字符串
变量 = oct(数值)
hex() 将数值转换为16进制字符串
变量 = hex(数值)
ascii码转换相关 A-Z 65-90 a-z 97-122 0-9 48-57
chr() 将ascii编码转换为字符
变量 = chr(ascii码数值)
ord() 将字符转换为其对应的ascii码
变量 = ord(字符)
其他
repr() 获取任意数据的原始字符串格式
input() 接受用户输入的信息 ,接受的结果为字符串
格式:变量 = input('提示信息')
文件与os模块
打开文件,读写文件,操作文件内容
写入文件操作:(把大象装进冰箱)
1.打开文件 open() #1.打开冰箱门
2.向文件中添加内容 write() #2.把大象塞进去
3.关闭文件 close() #3.关闭冰箱
读取文件操作:(把大象从冰箱中取出来)
1.打开文件 open() #1.打开冰箱门
2.读取文件内容 read() #2.把大象拿出来
3.关闭文件 close() #3.把冰箱门带上
相关的函数
open() 打开或者建立文件
格式:open('文件路径','打开方式',encoding = '设置字符集')
打开方式:
基础模式:
w w模式 write 写入模式
1.文件不存在则新建文件,文件存在则打开并且清空文件
2.文件的指针指向文件的开头
r r模式 read 读取模式
1.文件不存在则报错,文件已存在则打开文件
2.文件的指针指向文件的开头
x x模式 xor 异或模式
1.文件不存在则新建文件,文件已存在则报错
2.文件的指针指向文件的开头
a a模式 append 追加模式
1.文件不存在则新建文件,文件已存在则打开文件
2.文件指针指向文件的末尾
扩展模式:
b b模式 bytes bytes模式
+ plus模式 增强模式
文件操作模式:
w,r,a,x
wb,rb,ab,xb
w+,r+,a+,x+
wb+,rb+,ab+,xb+
文件指针:程序操作文件的光标
close():关闭文件对象,方便回收资源
文件打开就要关闭!
read()
读取文件内容
格式:文件io对象.read()
读取所有内容
读取指定内容
格式:文件io对象.read(读取的字符个数)
读取指定长度的字符
readline() 一次读取一行的内容
格式:文件io对象.readline()
读取一行内容
格式:文件io对象.readline(读取的字符个数)
读取内容:如果个数>当前行的字符数,只读取当前行,如果读取的字符个数
readlines() 一次读去多行内容
格式:文件io对象.readlines()
将所有数据按行读取到列表当中去
格式:文件io对象.readlines(字符个数)
将所有数据按行读取到列表当中去
注意:如果字符个数不满1行按照一行计算
write() 向文件中写入内容
格式:文件io对象.write(内容)
writelines() 将容器数据写入到文件当中
格式:文件io对象.writelines(容器类数据)
truncate() 截取文件内容
格式:文件io对象.truncate(字节个数)
#与文件指针相关的函数
tell() 获取当前文件指针的位置,文件指针按照字节计算而不是字符!
格式:文件io对象.tell()
返回值:文件指针位置的整数
seek() 设置指针的位置
格式:文件io对象.seek(指针长度,参考位置) #这是官方定义的功能
指针长度: 只是一个整数
参考位置
0 表示从头开始计算长度 【只有这个可以使用,可以直接省略】
1 表示从当前指针的位置开始计算长度
2 表示从末尾向前计算长度
OS:operate System 操作系统
os模块并不是python启动就加载的模块!
学习os模块必须加载os模块才可以使用
时间模块的函数
asctime()
功能:返回一个正常的可读的时间字符串
格式:time.asctime(时间元组)
返回值:时间字符串
strptime()
功能:解析时间字符串成一个元组,strftime的逆向操作(str parse time)
格式:time.strptime('时间字符串','时间字符串格式')
返回值:时间元组
gmtime()
功能:获取当前UTC时间元组
格式1:time.gmtime()
返回值:当前UTC时间元组
格式2:time.gmtime(时间戳)
返回值:指定时间戳的UTC时间元组
ctime()
功能:获取本地时间的字符串格式
格式1: time.ctime()
返回值:时间格式字符串 相当于 asctime(localtime())
格式2: time.ctime(时间戳)
返回值:时间格式字符串 相当于asctime(localtime(时间戳))
mktime()
功能:使用时间元组制作时间戳
格式:time.mktime(时间元组)
返回值:时间戳
注意:按照本地时间来进行计算,如果想按照UTC时间计算,则是calendar.timegm()
localtime()
功能:获取当前时间元组
格式1:time.localtime()
返回值:本地时间元组
格式2:time.localtime(时间戳)
返回值:指定时间戳的本地时间元组
perf_counter()
功能:获取CPU时间用于计算时间差
格式:time.perf_counter()
返回值:浮点数时间戳
主要用于计算程序执行时间,开始获取一次,程序执行完毕在获取一次,相减获得执行总时间,仅py3.3以上
sleep()
功能:程序睡眠,使得程序在此处等待指定的时间
格式:time.sleep(时间秒数)
返回值:无
time()
功能:获取当前本地的时间戳
格式:time.time()
返回值:浮点数时间戳
strftime()
功能:格式化输出时间字符串(str foramt time)
格式:time.strftime('字符串格式'[,时间元组])
返回值:格式化之后的哦字符串 格式 含义 备注 %a 本地(locale)简化星期名称 %A 本地完整星期名称 %b 本地简化月份名称 %B 本地完整月份名称 %c 本地相应的日期和时间表示 %d 一个月中的第几天(01 - 31) %H 一天中的第几个小时(24 小时制,00 - 23) %I 一天中的第几个小时(12 小时制,01 - 12) %j 一年中的第几天(001 - 366) %m 月份(01 - 12) %M 分钟数(00 - 59) %p 本地 am 或者 pm 的相应符 注1 %S 秒(01 - 61) 注2 %U 一年中的星期数(00 - 53 星期天是一个星期的开始)第一个星期天之前的所有天数都放在第 0 周 注3 %w 一个星期中的第几天(0 - 6,0 是星期天) 注3 %W 和 %U 基本相同,不同的是 %W 以星期一为一个星期的开始 %X 本地相应时间 %y 去掉世纪的年份(00 - 99) %Y 完整的年份 %z 用 +HHMM 或 -HHMM 表示距离格林威治的时区偏移(H 代表十进制的小时数,M 代表十进制的分钟数) %% %号本身
clock()
功能:获取CPU时间,用于计算代码执行时间
格式:time.clock()
返回值:浮点数时间戳
主要用于计算程序执行时间,开始获取一次,程序执行完毕在获取一次,相减获得执行总时间,仅py3.3以下
os模块中的函数:
getcwd() 获取当前的工作目录 get current work directory
格式:os.getcwd()
返回值:当前工作目录的地址字符串
注意:当前工作目录:操作文件或者文件夹等信息的默认查找使用的文件夹
system() 执行操作系统的命令
格式:os.system('系统命令')
返回值:无
注意:linux,和window,unix的命令是不同的
listdir() 获取指定文件夹中的所有内容的信息组成的列表
格式:os.listdir(路径)
返回值:存放所有内容名称的列表
mkdir() 创建文件夹
格式:os.mkdir(文件夹路径,权限设置)
返回值:无
以下内容对linux有效,window无所谓
0o 7 7 7 八进制 所有者 所属组 其他人
所有者:文件夹或者文件归谁所有 admin 用户
所属组:所有者所在的组别 group用户
其他人: 不是所有者或者所属组的其他用户 other用户
权限划分:
可读,可写,可执行 4 2 1
chdir() 修改当前的工作目录
格式:os.chdir(要设置的工作目录)
返回值:无
rmdir() 删除空文件夹
格式:os.rmdir(路径)
返回值:无
removedirs() 递归删除空文件夹
格式:os.removedirs(路径)
返回值:无
rename() 修改文件或者文件夹的名称
格式:os.rename('来源路径','目标路径')
返回值:无
stat() 获取文件或者文件夹的状态信息
格式:os.stat(路径)
返回值:容器数据 保存着很多的文件夹和文件的信息
makedirs() 递归创建文件夹
格式:os.makedirs(路径,权限)
返回值:无
与环境变量相关的方法
环境变量:
简介:环境变量就是一组路径的组合。
作用:执行系统命令的时候提供查找文件的路径
getenv() 获取系统的环境变量
格式:os.getenv('环境变量名')
返回值:环境变量信息
putenv() 设置python的环境变量
格式:os.putenv('环境变量名',值)
os模块中环境变量成员os.environ
专门用于处理python的环境变量
os.environ 成员值
os模块中常用的值:
curdir 获取当前的路径
. 表示当前文件夹 【相对路径】
pardir 获取上层文件夹
.. 表示上一层文件夹 【相对路径】
path 这是os模块中的子模块 内容非常多
name 获取系统的标识符号
nt 表示window操作系统
posix 表示linux或者unix系统
sep 获取当前系统的路径分割符号
\ window系统的路径分隔符
/ linux和unix的路径分隔符
extsep 获取文件名称与文件后缀名称之间的分隔符
所有操作系统都是.
linesep 获取系统的换行符号
window \r\n
linux \n
macos 10.9 ->\r 10.10->\n
路径详解:
分类:相对路径和绝对路径
绝对路径:完整描述路径的表示方式
C:/window/system32/calc.exe window
/home/xdl/image linux
/home/xdl/image unix
相对路径:使用.或者..开头的路径
./image/123.jpg【等价于image/123.jpg】
../abc/xyz/aaa
os的path子模块:主要用于路径相关的操作
abspath() 将相对路径转化为绝对路径
格式:os.path.abspath(路径)
返回值:绝对路径
samefile() 检测两个路径是否指向同一个文件或者文件夹
格式:os.path.samefile(路径1,路径2)
返回值:布尔值
dirname() 获取路径中路径部分
格式:os.path.dirname(路径)
返回值:路径部分
join() 将两个路径合并到一起
格式:os.path.join(路径1,路径2)
返回值:组合之后的路径信息
split() 直接将路径拆分成路径部分和主体部分组成的元组
格式:os.path.split(路径)
返回值:主体和路径组成的元组
splitext() 将路径拆分为文件后缀和其他部分
格式:os.path.splitext(路径)
返回值:后缀信息和其他信息组成的元组
getsize() 获取文件的大小
格式:os.path.getsize(文件路径)
isdir() 检测是否是一个文件夹
格式:os.path.isdir(路径)
返回值:布尔值
basename() 获取路径的主体部分
格式:os.path.basename(路径)
返回值:主体部分
islink() 检测是否是一个连接
getctime() 获取文件的创建时间 get create time
格式:os.path.getctime()
返回值:创建文件的时间戳
getmtime() 获取文件的修改时间 get modify time
格式:os.path.getmtime()
返回值:修改文件的时间戳
getatime() 获取文件的访问时间 get active time
格式:os.path.getatime()
返回值:最后一次访问文件的时间戳
exists() 检测指定路径是否真的存在
格式:os.path.exists(路径)
返回值:布尔值
isabs() 检测路径是否是一个绝对路径
格式:os.path.isabs(路径)
返回值:布尔值
isfile() 检测是否是一个文件
格式:os.path.isfile(路径)
返回值:布尔值
zip模块
zipfile是python里用来做zip格式编码的压缩和解压缩的
ZipFile
ipfile.ZipFile(file[, mode[, compression[, allowZip64]]])
参数:
-参数file表示文件的路径或类文件对象(file-like object)
-参数mode指示打开zip文件的模式,默认值为r
r 表示读已经存在的zip文件
w 表示新建一个zip文档或覆盖一个已经存在的zip文档
a 表示将数据附加到一个现存的zip文档中。
-参数compression表示在写zip文档时使用的压缩方法
zipfile.ZIP_STORED 只是存储模式,不会对文件进行压缩,这个是默认值
zipfile.ZIP_DEFLATED 对文件进行压缩
-如果要操作的zip文件大小超过2G,应该将allowZip64设置为True。
方法
ZipFile.getinfo(name)
功能:获取zip文档内指定文件的信息。返回一个zipfile.ZipInfo对象,它包括文件的详细信息。将在下面 具体介绍该对象。
ZipFile.getinfo(name)
功能:返回一个ZipInfo对象,表示zip文档中相应文件的信息。
它支持如下属性:
ZipInfo.filename 获取文件名称。
ZipInfo.file_size 获取未压缩的文件大小。
ZipInfo.compress_type 压缩类型。
ZipInfo.comment 文档说明。
ZipInfo.extr 扩展项数据。
ZipInfo.create_system 获取创建该zip文档的系统。
ZipInfo.create_version 获取、创建zip文档的PKZIP版本。
ZipInfo.extract_versio 获取、解压zip文档所需的PKZIP版本。
ZipInfo.date_time 获取文件最后修改时间。返回一个包含6个元素的元组:(年, 月, 日, 时, 分, 秒)
ZipInfo.flag_bits zip标志位。
ZipInfo.volume 文件头的卷标。
ZipInfo.internal_attr 内部属性。
ZipInfo.external_attr 外部属性。
ZipInfo.header_offset 文件头偏移位。
ZipInfo.CRC 未压缩文件的CRC-32。
ZipInfo.compress_size 获取压缩后的大小。
ZipInfo.reserved 预留字段,当前实现总是返回0。
ZipFile.namelist()
功能:获取zip文档内所有文件的名称列表。
ZipFile.extract(member[, path[, pwd]])
功能:将zip文档内的指定文件解压到当前目录。
参数:
member 指定要解压的文件名称或对应的ZipInfo对象
path 指定解析文件保存的文件夹
pwd 解压密码
ZipFile.extractall([path[, members[, pwd]]])
功能:解压zip文档中的所有文件到当前目录。
参数:
members 默认值为zip文档内的所有文件名称列表,也可以自己设置,选择要解压的文件名称。
ZipFile.infolist()
功能:获取zip文档内所有文件的信息,返回一个zipfile.ZipInfo的列表。
ZipFile.setpassword(pwd)
功能:设置zip文档的密码。
ZipFile.read(name[, pwd])
功能:获取zip文档内指定文件的二进制数据。
ZipFile.write(filename[, arcname[, compress_type]])
功能:将指定文件添加到zip文档中。
参数:
filename 文件路径
arcname 添加到zip文档之后保存的名称
compress_type 压缩方法,它的值可以是zipfile.ZIP_STORED 或zipfile.ZIP_DEFLATED
ZipFile.writestr(zinfo_or_arcname, bytes)
功能:writestr()支持将二进制数据直接写入到压缩文档。
ZipFile.printdir()
功能:将zip文档内的信息打印到控制台上。
ZipInfo
加载os模块
import os
time模块
欲用此模块也必须先引用
import time
时间戳
时间戳是一种用于表示时间的方式。从1970年1月1日0时0分0秒0毫秒开始到指定时间的秒数。世间戳也叫做unix时间戳,1970年1月1日成为unix元年。
作用:是为了方便时间的统一运算。
1.从1970年1月1日开始计算。
2.能够使用到2038年的某一天
3.如果使用太远的未来或者1970年以前的时间可能出现异常
UTC时间
UTC时间又称之为世界协调时间。特指格林尼治天文台所在位置的时间也叫做格林尼治时间。
中国的时区是东八区,和世界协调时间差了8个小时,多个八个小时
夏令时
夏令时就是通过在夏季将时间调快一小时,来提醒大家早睡早起身体好,节省蜡烛!
每天的时钟变成了25个小时,注意本质还是24个小时
时间元组struct_time
时间元组就是一个用于表示时间格式的元组数据而已,他是time模块操作时间的主要方式。
(tm_year=2017, tm_mon=7, tm_mday=4, tm_hour=9, tm_min=4, tm_sec=21, tm_wday=1, tm_yday=185, tm_isdst=0)
格式:(年,月,日,时,分,秒,周几,一年中的第几天,是否是夏令时)
索引 名称 内容 取值 0 tm_year 年 4位数年份 2017 1 tm_month 月 1~12 2 tm_day 日 1~31 3 tm_hour 时 0~23 4 tm_min 分 0~59 5 tm_sec 秒 0~61 60闰秒,61是历史保留 6 tm_wday 周几 0~6 周一~周天 7 tm_yday 一年中的第几天 1~366 8 tm_isdst 夏令时 0 是 其他不是
时间模块的值
timezone
获取当前时区与格林尼治所在时区的相差的秒数(推荐)
altzone
获取当前时区与格林尼治所在时区的相差的秒数,在有夏令时的情况下
daylight
检测是否是夏令时的状态 0 夏令时 非0就不是
日历模块
calendar()
功能:获取指定年份的日历字符串
格式:calendar.calendar(年份,w=2,l=1,c=6,m=3)
返回值:字符串
w表示 2个日期之间的间隔字符长度
l表示 一个周占用几个行高度
c表示2个月份之间的空白间隔
m表示一行显示几个月
month()
功能:获取指定年月的日历字符串
格式:calendar.month(年,月,w=2,l=1)
返回值:字符串A
monthcalendar()
功能:获取一个年月的矩阵列表
格式:calendar.monthcalendar(年,月)
返回值:二级列表
[ [0, 0, 0, 0, 0, 1, 2], [3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16], [17, 18, 19, 20, 21, 22, 23], [24, 25, 26, 27, 28, 29, 30], [31, 0, 0, 0, 0, 0, 0] ]
结果中0表示不是该月的数值,1-31才是当月信息
isleap()
功能:检测指定年份是不是闰年
格式:calendar.isleap(年份)
返回值:布尔值
leapdays()
功能:检测指定年份之间的闰年个数
格式:calendar.leapdays(开始年份,结束年份)
返回值:整数
注意:包含开始年份不包含结束年份
monthrange()
功能:获取一个月的周几开始及当月天数
格式:calendar.monthrange(年,月)
返回值:元组(周几,天数)
注意:0-6表示周一到周天
weekday()
功能:根据年月日计算周几
格式:calendar.weekday(年,月,日)
返回值:整型 0-6 表示周一到周天
timegm()
功能:将时间元组转化为时间戳
格式:calendar.timegm(时间元组)
返回值:时间戳