python中常用模組詳解一,python模組詳解

來源:互聯網
上載者:User

python中常用模組詳解一,python模組詳解

1.time 模組

import times = time.localtime()  # 把時間轉化成格式化的時間,通過. 取得裡面的年月日等 struct_time 格式time.struct_time(tm_year=2018, tm_mon=3, tm_mday=11, tm_hour=19, tm_min=53, tm_sec=31, tm_wday=6, tm_yday=70, tm_isdst=0)s=time.gmtime()   #UTC 時區s=time.time()  # 返回目前時間戳print(time.asctime())  #接收struct_time 轉化成Sun Mar 11 19:46:08 2018 不傳預設當前的時間print(time.ctime(0))     #返回當前的時間Sun Mar 11 19:46:08 2018  預設目前時間傳入時間戳記格式數位話  轉化成時間戳記日期Thu Jan  1 08:00:00 1970print(time.strftime("%Y-%m-%d", time.localtime()))  # 傳入的是struct_time 格式的時間格式  轉換成自己定義的時間格式print(time.strptime("2017-12-12", "%Y-%m-%d"))  # 把字串格式轉化成struct_time格式

2.datetime模組

import datetimes=datetime.datetime.now()  #(2018-03-11 20:19:10.993661)s下面好多方法  year  mouth  day  date()=2018-03-11  ctime()=Sun Mar 11 19:46:08 2018  strftime("%Y-%m-%d")print(datetime.date.fromtimestamp(time.time()))  # 把一個時間戳記轉換成2018-03-11# ############# 主要是時間的運算s = datetime.datetime.now() print(s.timetuple())  # time.struct_time(tm_year=2018, tm_mon=3, tm_mday=11, tm_hour=20,#  tm_min=19, tm_sec=9, tm_wday=6, tm_yday=70, tm_isdst=-1)print(s + datetime.timedelta(seconds=1))  # 實現運算的作用 後面跟 day  hours   secondsd = datetime.datetime.now()t = d.replace(year=2016)  #修改時間並且返回修改後的時間 ,被修改的時間不變 print(t)

3.random模組的使用

import random print(random.randint(1, 200))  # 隨機 產生1-200之間的數字 包含200 print(random.randrange(1, 200, 2))  # 隨機產生1-200(偶數)  不包含200 print(random.random())  # 0-1 的小數 print(random.choice("dasdadsasdad"))  # 隨機挑選一個字串的字元 print(random.sample("adasdasdasdad",5))  #在字串中隨機挑選5個字元組成列表#實現驗證碼import stringprint(string.ascii_letters)  #大小寫包含print(string.hexdigits)  #十六位進位print(string.digits)#十進位s_list=random.sample(string.ascii_letters + string.digits,4)s=''.join(s_list)print(s)
list_all=[i for i in range(80)] # # a='dasdasdasd' #不能是字串 # random.shuffle(list_all) # 重新洗牌 使在原來的列表中生效 # print(list_all)
os 模組提供了很多允許你的程式與作業系統直接互動的功能
# os 模組提供了很多允許你的程式與作業系統直接互動的功能import osBASE_DIR = os.path.abspath(__file__)  # 返迴文件的據對路徑os.listdir(".")  # 列出指定檔案夾下的目錄os.path.join('aaa', 'aaa')  # 把路徑拼接os.path.dirname(BASE_DIR)  # 返回目錄路徑不包含檔案os.path.split(BASE_DIR)  # 返迴文件名和路徑組成的列表os.path.exists(BASE_DIR)  # 判斷path是否存在os.path.isfile(BASE_DIR)  # 判斷檔案是否存在os.path.isdir(BASE_DIR)  # 判斷是否是一個目錄os.path.splitext(BASE_DIR)os.path.basename(BASE_DIR)  # 擷取檔案名稱os.path.getsize(BASE_DIR)  # 擷取檔案大小  ********常用
 5.SYS模組的使用
sys.argv           命令列參數List,第一個元素是程式本身路徑sys.exit(n)        退出程式,正常退出時exit(0)sys.version        擷取Python解釋程式的版本資訊sys.maxint         最大的Int值sys.path           返回模組的搜尋路徑,初始化時使用PYTHONPATH環境變數的值sys.platform       返回作業系統平台名稱sys.stdout.write('please:')  #標準輸出 , 引出進度條的例子, 注,在py3上不行,可以用print代替val = sys.stdin.readline()[:-1] #標準輸入sys.getrecursionlimit() #擷取最大遞迴層數sys.setrecursionlimit(1200) #設定最大遞迴層數sys.getdefaultencoding()  #擷取解譯器預設編碼sys.getfilesystemencoding  #擷取記憶體資料存到檔案裡的預設編碼
json & pickle 模組 python 的序列化與還原序列化的模組,用於程式之間的互動。
json 的有點就是跨平台 不同語言都支援json  確定就是支援的種類不多str int list tuple dict
json.loads()傳可被json的檔案類型json轉化成字串 json.load() json.dumps() json.dump()
pickle只可以在python裡面使用 支援python的資料類型 ,佔用體積比較大
import jsonimport pickle# json 的有點就是跨平台 不同語言都支援json  確定就是支援的種類不多str int list tuple dict# json.loads()傳可被json的檔案類型json轉化成字串  json.load()  json.dumps() json.dump()# pickle只可以在python裡面使用 支援python的資料類型 ,佔用體積比較大d = {1: 2, 3: 4}l = ["name", "age"]s = json.dumps(d)  # 把字典等格式轉化成字串print(s)d1 = json.loads(s)  # 把字串轉換成字典形式print(d1)f = open("test.json", 'w')  # 把字典等形式存在檔案的變成字串轉換成字元json.dump(d, f)f.close()f = open("test.json", 'r')  # 從檔案裡讀出來 轉化成字串d2 = json.load(f)# pickle 也是這樣的形式 只是上傳的時候檔案儲存的是以pickle的形式儲存在檔案裡

 shutil模組 該模組用於檔案的copy與壓縮  ,主要用於檔案的打包、移動、等功能。

import shutil# 拷貝檔案 前提是檔案必須開啟 傳的是控制代碼shutil.copyfileobj(open("Log.py", "r"), open("Log_new.py", "w"))# 拷貝檔案 封裝了開啟檔案 只需要傳檔案名稱(不是目錄名)shutil.copyfile("Log.py", "log_new.py")shutil.copymode("Log.py", "lll.py")  # 僅拷貝許可權,目標檔案必須存在shutil.copy("Log.py", "lll.py")  # 拷貝檔案和許可權shutil.copy2("Log.py", "lll.py")  # 拷貝檔案和狀態# 拷貝目錄 必須是目錄shutil.copytree("../FTP", "ftp", ignore=shutil.ignore_patterns("__init__.py"))# 遞迴的拷貝檔案,有個參數ignore=shutil.ignore_patterns("__init__.py")忽略的檔案shutil.rmtree("log_new.y")  # 刪除目錄 檔案不行的shutil.move("log_new.y", "ll.py")  # 移動檔案,或者重新命名shutil.make_archive(base_name="log_l", format="zip", root_dir="../FTP")  # 壓縮檔#  base_name 指定壓縮的路徑 最後面跟壓縮檔名,format=  壓縮格式"zip", "tar", "bztar","gztar"# root_dir 要壓縮的檔案路徑(目錄)  owner 使用者名稱 group  組名  

 模組xlrd,讀取excel表格的模組xlrd 外部模組 需要pip 安裝 只可以讀取excle

  其他Excel寫入修改模組請連結 http://blog.csdn.net/yankaiwei120/article/details/52204427

import xlrd# 解析xls表格檔案的模組 用xlrd  寫入用xlwdBook = xlrd.open_workbook(r"C:\Users\zhuangjie23261\Desktop\風控文檔.xls")  # 開啟檔案返回一個book對象sheet = Book.sheets()  # 返回指定的sheet的對象形成一個列表num = Book.nsheets  # 返迴文件的sheet的 個數Book.sheet_by_index(1)  # 返回指定的索引值的sheet 頁的名稱Book.sheet_names()  # 返回所有sheet頁的名稱Book.sheet_by_name()  # 根據名稱返回sheet頁對象Book.sheet_loaded()  # 根據指定的索引或者名稱 來判斷是否有  沒有則報錯sheet.name  # 返回sheet的名稱sheet.nrows  # 返回sheet頁的行數 -----行sheet.ncols  # 返回sheet頁的列數  | 列sheet.row(    1)  # 擷取指定的行 組成一個Cell_lisy列表[number:20100805.0, text:'O32_20100430sp2', text:'E類風控資產類別', text:'添加N-網下申購預估中籤資產(公開發行)', empty:'', text:'胡育東']sheet.row_values(1)  # 指定行的列表 [20100805.0, 'O32_20100430sp2', 'E類風控資產類別', '添加N-網下申購預估中籤資產(公開發行)', '', '胡育東']sheet.col(1)  # 擷取指定的列 的cell_listsheet.col_values(1)  # 指定列的listcell = sheet.cell(1, 2)  # 根據位置擷取Cell對象。sheet.cell_value(1, 2)  # 根據位置擷取Cell對象的值。print(cell.value)  # 擷取cell 的值# 列印每張表的第一列for s in sheet:    print(s.name)  # 擷取每個sheet頁    for i in range(s.nrows):  # s.nrows 每個sheet頁 有多少行 s.row(i) 這個是返回每一行的一個列表-1 代表最後一個 value代表文本值        print(s.row(i)[0].value)

 解析xml模組

 xml是實現不同語言或程式之間進行資料交換的協議,跟json差不多,但json使用起來更簡單,不過,古時候,在json還沒誕生的黑暗年代,大家只能選擇用xml呀,至今很多傳統公司如金融行業的很多系統的介面還主要是xml。

import xml.etree.ElementTree as ETtree = ET.parse("test.xml")root = tree.getroot()print(root.tag)  # tag > <data>這種屬性的表頭for child in root:    print(child.tag, child.attrib)  # attrib <>裡面的屬性 組成一個字典    for i in child:        print(i.tag, i.text)  # <>text<>  常值內容for year in root.iter("year"):  # iter()相當於一個篩選器 篩選 <>裡面的屬性    print(year.text)# *****************************************# 對xml 修改for year in root.iter("year"):    new_year = int(year.text) + 1    year.text = str(new_year)  # 轉換成字串的格式  寫入    year.set("updated", "yes")  # set格式類型 updated  yes  說明  更新tree.write("test.xml")#對xml 節點的刪除for country in root.findall("country"):  # 節點就是node  遍曆尋找root 下面全部country的節點    rank = country.find("rank").text   # 再尋找到的每一個country下的rank 節點列印text    rank = int(rank)   # 把str轉化成int    if rank < 60:        country.remove(country.find("rank"))   # 這樣是移除country 下的節點rank  也可以直接remove這個country 這個大的節點tree.write("new_test.xml")  #把產生的寫入新檔案# ***************************************new_xml = ET.Element("namelist")  # 產生一個xml的根節點最外層節點name = ET.SubElement(new_xml, "name", attrib={"data": "2017-11"})  # 產生最外層節點之下的一個節點nameage = ET.SubElement(name, "age")  # 在name 這個節點之下再產生兩個節點  age,sexsex = ET.SubElement(name, "sex")  # sexage.text = "33"sex.text = "男"# 給 age設定數字必須是字元# 這裡還可以加多個節點name2 = ET.SubElement(new_xml, "name", attrib={"data": "2018-11"})  # 產生最外層節點之下的一個節點nameage = ET.SubElement(name2, "age")  # 在name 這個節點之下再產生兩個節點  age,sexsex = ET.SubElement(name2, "sex")  # 如果沒有設定text 則會顯示一個標籤 age.text = "33"#*********************************************et = ET.ElementTree(new_xml)  # 這一步是把上面的設定好的格式轉化成xml的文檔et.write("new_xml.xml", encoding="utf8", xml_declaration=True)  # 寫入 檔案ET.dump(new_xml)  # 列印寫入的檔案格式

 configparser讀取設定檔與對設定檔修改

 

import configparser"""[DEFAULT]ServerAliveInterval = 45Compression = yesCompressionLevel = 9ForwardX11 = yes[bitbucket.org]User = hg[topsecret.server.com]Port = 50022ForwardX11 = no***************[group2]k1 = v1[group3]k1 = v1"""# 解析conf = configparser.ConfigParser()conf.read("conf_new.ini")  # 開啟設定檔sec_list = conf.sections()  # 擷取檔案的sections ["DEFAULT"] 不列印s = conf["bitbucket.org"]["User"]  # 列印節點section下的User 的文本for v in conf["topsecret.server.com"]:    print(v)  # 列印 topsecret.server.com 下的節點名稱 預設也列印default下的節點# 查詢opt = conf.options("bitbucket.org")  # 尋找指定節點下的對用的key值print(opt)item = conf.items("bitbucket.org")  # 返回 key  value 對應的元祖print(item)val = conf.get("bitbucket.org", "compression")  # group>[]  key>k1:v1val=conf.getint("topsecret.server.com", "Port")  # 獲得的值是int值print(val)# 增刪conf.read("conf_new.ini")  # 開啟設定檔conf.remove_section("group1")  # 刪除節點group1conf.add_section("group3")  # 添加節點group3conf.remove_option("group3", "k1")  # 刪除 option 先寫組[] 然後填keyprint(conf.has_section("group1"))  # 判斷有沒有這個組conf.set("group3", "k1", "v1")  # 設定配置conf.write(open("conf_new.ini", 'w'))  # 寫入檔案必須是開啟的檔案  說白了就是傳入檔案控制代碼

 

  

 

  

 

 
 


 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.