1. 程式人生 > >datetime shutil xml collections模組

datetime shutil xml collections模組

 

# datetime模組
import datetime
now_time = datetime.datetime.now()
print(now_time)

# 只能調整的欄位:weeks days hours minutes seconds
# print(datetime.datetime.now() + datetime.timedelta(weeks=3)) # 三週後
# print(datetime.datetime.now() + datetime.timedelta(weeks=-3)) # 三週前
# print(datetime.datetime.now() + datetime.timedelta(days=-3)) # 三天前
# print(datetime.datetime.now() + datetime.timedelta(days=3)) # 三天後 # print(datetime.datetime.now() + datetime.timedelta(hours=5)) # 5小時後 # print(datetime.datetime.now() + datetime.timedelta(hours=-5)) # 5小時前 # print(datetime.datetime.now() + datetime.timedelta(minutes=-15)) # 15分鐘前 # print(datetime.datetime.now() + datetime.timedelta(minutes=15)) # 15分鐘後
# print(datetime.datetime.now() + datetime.timedelta(seconds=-70)) # 70秒前 # print(datetime.datetime.now() + datetime.timedelta(seconds=70)) # 70秒後 current_time = datetime.datetime.now() # 現在時間 # 可直接調整到指定的 年 月 日 時 分 秒 等 print(current_time.replace(year=1977)) # 直接調整到1977年 print(current_time.replace(month=1)) #
直接調整到1月份 print(current_time.replace(year=1989,month=4,day=25)) # 1989-04-25 18:49:05.898601 # 將時間戳轉化成時間 print(datetime.date.fromtimestamp(1232132131)) # 2009-01-17
# shutil模組
import shutil
shutil.copyfileobj(open('shutil1', encoding='utf-8'), open('shutil2',encoding='utf-8', mode='w')) #以寫的模式複製到空的shutil2檔案
shutil.copyfile('a1.log','abc.txt')  # 複製一個a1.log變成abc.txt,相當於複製貼上   copy檔案 -->複製重新命名一個檔案

import shutil
import time
ret = shutil.make_archive("blog_bak%s" %(time.strftime('%Y-%m-%d')), 'gztar', root_dir='blog') # 打包blog資料夾變成blog_bak+日期.tar.gz

import tarfile
t= tarfile.open(r'D:\24期週末班\day08\blog_bak.tar.gz','r')  #解包
t.extractall('blog2')   #解包到當前目錄下變成blog2
t.close() 
# xml(瞭解)
<?xml version="1.0"?>
<data>
    <country name="Liechtenstein">
        <rank updated="yes">2</rank>
        <year>2008</year>
        <gdppc>141100</gdppc>
        <neighbor name="Austria" direction="E"/>
        <neighbor name="Switzerland" direction="W"/>
    </country>
    <country name="Singapore">
        <rank updated="yes">5</rank>
        <year>2011</year>
        <gdppc>59900</gdppc>
        <neighbor name="Malaysia" direction="N"/>
    </country>
    <country name="Panama">
        <rank updated="yes">69</rank>
        <year>2011</year>
        <gdppc>13600</gdppc>
        <neighbor name="Costa Rica" direction="W"/>
        <neighbor name="Colombia" direction="E"/>
    </country>
</data>
xml

 

# import xml.etree.ElementTree as ET
# tree = ET.parse('二狗.xml')
# root = tree.getroot()
# print(root)  # <Element 'data' at 0x000000000274D548>
# print([tag for tag in root])

# 查
# print(root.iter('year'))  # 查詢所有的year標籤。
# for i in root.iter('year'):
#     print(i)

#
# print(root.find('country')) # 找到第一個就返回


# print(root.findall('country'))  # 找到子標籤所有的country

# 找尋標籤屬性以及內容
#
# year_list = [year for year in root.iter('year')]
# print(year_list[0].attrib) #{name:'臉哥'}
# print(year_list[0].text)
# collections 模組  #用在座標,向量 半徑表示一個圓
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
# print(p[0])
print(p.x)

 

deque

使用list儲存資料時,按索引訪問元素很快,但是插入和刪除元素就很慢了,因為list是線性儲存,資料量大的時候,插入和刪除效率很低。

deque是為了高效實現插入和刪除操作的雙向列表,適合用於佇列和棧:

複製程式碼
>>> from collections import deque
>>> q = deque(['a', 'b', 'c'])
>>> q.append('x')
>>> q.appendleft('y')
>>> q
deque(['y', 'a', 'b', 'c', 'x'])