Python常用查询(不定期更新)
目录
0.环境与配置
1.基础语法
1.1 字典(Dictionary) copy()方法
返回一个字典的浅复制。
直接赋值和 copy 的区别可以通过以下实例说明:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
dict1 = {'user':'runoob','num':[1,2,3]}
dict2 = dict1 # 浅拷贝: 引用对象
dict3 = dict1.copy() # 浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用
# 修改 data 数据
dict1['user']='root'
dict1['num'].remove(1)
# 输出结果
print(dict1)
print(dict2)
print(dict3)
实例中 dict2 其实是 dict1 的引用(别名),所以输出结果都是一致的,dict3 父对象进行了深拷贝,不会随dict1 修改而修改,子对象是浅拷贝所以随 dict1 的修改而修改。
{'num': [2, 3], 'user': 'root'}
{'num': [2, 3], 'user': 'root'}
{'num': [2, 3], 'user': 'runoob'}
1.2 列表(list)的extend方法
注意exten的两种使用方法,以及与append方法的区别:
a=[0,0,1,1]
b=[]
b.extend([a[0:2]])
b.extend([a[2:4]])
print(b) #[[0, 0], [1, 1]]
c=[]
c.extend(a[0:2])
c.extend(a[2:4])
print(c) #[0, 0, 1, 1]
d=[]
d.append(a[0:2])
d.append(a[2:4])
print(d) #[[0, 0], [1, 1]]
2.文件读写和输入输出
2.1 open方法
读
- 用open方法读html
with open('E:\\test2.html','r',encoding="utf-8") as f:
# 加上参数encoding即可,不然遇到中文会遇到编码问题
- 使用open的三种read方法
str=f.read() #一次性读取文件的所有内容放在内存中,结果是一个字符串
line=f.readline() #逐行读取
list=f.readlines() #一次性读取文本的所有内容,结果是一个list
写

f = "lucky.txt"
a =8
with open(f,"w") as file: #”w"代表着每次运行都覆盖内容
for i in range(a):
file.write(str(i) + "d" + " "+"\n")
a +=1
2.2 遍历文件夹下所有文件
for root, dirs, files in os.walk(file):
# root 表示当前正在访问的文件夹路径
# dirs 表示该文件夹下的子目录名list
# files 表示该文件夹下的文件list
# 遍历文件
for f in files:
print(os.path.join(root, f))
# 遍历所有的文件夹
for d in dirs:
print(os.path.join(root, d))
也可以用os.listdir(path)
import os, sys
# 打开文件
path = "/var/www/html/"
dirs = os.listdir( path )
# 输出所有文件和文件夹
for file in dirs:
print file
2.3 创建文件夹
os.mkdir('c:/Users/13770/Desktop/a') #不包含子目录
os.mkedirs('c:/Users/13770/Desktop/a/b') #不包含子目录
2.4 清空文件内容
f.seek(0) #找到文件头
f.truncate() #清空文件
3.其他技巧
3.1创建固定长度的空列表
features = [[] for _ in range(6)]
print(features) # [[], [], [], [], [], []]
3.2 打乱数据
dict={
'im':[[0],[1],[2],[3],[4],[5],[6],[7],[8],[9]],
'bt':[[10],[11],[12],[13],[14],[15],[16],[17],[18],[19]]
}
index=[i for i in range(0,len(dict['im'])-1,2)]
random.shuffle(index)
temp=[]
for ind in index:
temp.extend([ind,ind+1])
index=temp
print(index)
for key in dict.keys():
temp=[]
for i in index:
temp.append(dict[key][i])
dict[key]=temp
4.字符串处理
4.1 使用正则表达式从字符串中提取数字
import re
\d 匹配单个数字
\d+ 匹配1次或多次单个数字
\d* 匹配0次或多次单个数字
\.? 匹配小数点,因为不确定有没有小数点,所以加上问号,换言之,它匹配0次或1次‘.’
匹配整数可以用:re.findall(r"\d+",string)
匹配小数可以用:re.findall(r"\d+\.?+\d*",string)
返回结果是一个list数组
4.2 简单字符串和数字相互转换
# str <==> int
i = 10
s = str(i)
i = int(s)
# str <==> float
st = '.4'
t = float(st)
st= str(t)
4.3 转义字符
- \n 是newline,即光标移到下一行行首。
- \r 是Carriage Return,即光标回到本行行首。

浙公网安备 33010602011771号