Python常用查詢(不定期更新)
阿新 • • 發佈:2020-08-06
目錄
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,即游標回到本行行首。