print(random.random()) | (0,1)----float | 大於0且小於1之間的小數 |
---|---|---|
print(random.randint(1,3)) | [1,3] | 大於等於1且小於等於3之間的整數 |
print(random.randrange(1,3)) | [1,3) | 大於等於1且小於3之間的整數 |
print(random.choice ( [1,'23', [4,5] ] ) ) | 1或者23或者[4,5] | |
print(random.sample( [1,'23', [ 4,5 ] ] , 2 ) ) | 第二個參數是任意幾個元素組合 | 列表元素任意2個組合 |
print(random.uniform(1,3)) | (1,3) | 大於1小於3的小數,如1.927109612082716 |
import random item=[1,3,5,7,9] random.shuffle(item) # 打亂item的順序,至關於"洗牌" print(item)
import random def make_code(n=5): res='' for i in range(n): s1=str(random.randint(0,9)) s2=chr(random.randint(65,90)) res+=random.choice([s1,s2]) return res print(make_code(10))
import shutil import time ret = shutil.make_archive( # 壓縮 "day15_bak_%s" %time.strftime('%Y-%m-%d'), 'gztar', root_dir=r'D:\code\SH_fullstack_s1\day15' ) import tarfile # 解壓 t=tarfile.open('day15_bak_2018-04-08.tar.gz','r') t.extractall(r'D:\code\SH_fullstack_s1\day16\解包目錄') t.close()
shelve模塊比pickle模塊簡單,只有一個open函數,返回相似字典的對象,可讀可寫 ;key必須爲字符串,而值能夠是python所支持的數據類型python
import shelve info1={'age':18,'height':180,'weight':80} info2={'age':73,'height':150,'weight':80} d=shelve.open('db.shv') #增 d['egon']=info1 d['alex']=info2 d.close() d=shelve.open('db.shv') #查 print(d['egon']) #{'age': 18, 'height': 180, 'weight': 80} print(d['alex']) #{'age': 73, 'height': 150, 'weight': 80} d.close() d=shelve.open('db.shv',writeback=True) #改 d['alex']['age']=10000 print(d['alex']) #{'age': 10000, 'height': 150, 'weight': 80} d.close()
xml是實現不一樣語言或程序之間進行數據交換的協議,跟json差很少,但json使用起來更簡單,在json還沒誕生的黑暗年代,只能選擇用xml,至今不少傳統公司如金融行業的不少系統的接口還主要是xmljson
<data> <country name="Liechtenstein"> <rank updated="yes">2</rank> <year updated="yes">2018</year> <neighbor direction="E" name="Austria" /> <neighbor direction="W" name="Switzerland" /> </country> <country name="Singapore"> <rank updated="yes">5</rank> <year updated="yes">2021</year> <neighbor direction="N" name="Malaysia" /> </country> <country name="Panama"> <rank updated="yes">69</rank> <year updated="yes">2021</year> <neighbor direction="W" name="Costa Rica" /> <neighbor direction="E" name="Colombia" /> </country> </data>
查 : 三種查找節點的方式app
import xml.etree.ElementTree as ET tree=ET.parse('a.xml') root=tree.getroot() res=root.iter('rank') # 會在整個樹中進行查找,並且是查找到全部 for item in res: print(item) # <Element 'rank' at 0x000002C3C109A9F8>..... print(item.tag) # 標籤名 rank rank rank print(item.attrib) # 屬性 {'updated': 'yes'} {'updated': 'yes'}... print(item.text) # 文本內容 2 5 69 res=root.find('country') # 只能在當前元素的下一級開始查找。而且只找到一個就結束 print(res.tag) print(res.attrib) print(res.text) nh=res.find('neighbor') # 在res的下一級查找 print(nh.tag) print(nh.attrib) cy=root.findall('country') # 只能在當前元素的下一級開始查找, 可是查找到全部 print([item.attrib for item in cy]) #[{'name':'Liechtenstein'},{'name':'Singapore'},{'name':'Panama'}]
改:dom
import xml.etree.ElementTree as ET tree=ET.parse('a.xml') root=tree.getroot() res=root.iter('year') for item in res: item.text=str(int(item.text) + 10) item.attrib={'updated':'yes'} tree.write('a.xml') #把更改寫入 tree.write('c.xml') #新建一個.xml文件,把更改的結果寫入
增:函數
import xml.etree.ElementTree as ET tree=ET.parse('a.xml') root=tree.getroot() for country in root.iter('country'): year=country.find('year') if int(year.text) > 2020: ele=ET.Element('egon') ele.attrib={'nb':'yes'} ele.text='很是帥' country.append(ele) country.remove(year) tree.write('b.xml')