Python——difflib文件比較、時間模塊、sys模塊和第三方模塊

一、時間模塊

1.時間的顯示

import time

s = '2019-7-14'
print(time.strptime(s,'%Y-%m-%d'))			##返回的時元組格式時間
s_time = '09:00:00'
print(time.strptime(s_time,'%H:%M:%S'))		##返回的是元組格式時間且爲unix時間

在這裏插入圖片描述

2.時間顯示的格式轉化

import time

#把元組的時間轉換爲時間戳
tuple_time = time.localtime()
print(tuple_time)
print(time.mktime(tuple_time))

#把元組時間轉換爲字符串時間
print(time.strftime('%m-%d',tuple_time))
print(time.strftime('%Y-%m-%d',tuple_time))
print(time.strftime('%F',tuple_time))       ##輸出的時間格式可以在linux中用 date --help 查看
print(time.strftime('%T',tuple_time))

在這裏插入圖片描述

import os
import time

#把時間戳類型轉換爲字符串時間
pwd_time = os.path.getctime('/etc/passwd')
print('pwd_time',pwd_time)
print(time.ctime(pwd_time))


#將時間戳轉換爲元組
print(time.localtime(pwd_time))

#元組轉換爲時間戳
tuple_time = time.localtime()
print(time.mktime(tuple_time))

在這裏插入圖片描述

3.關於時間的計算

from datetime import date
from datetime import datetime
from datetime import timedelta

print(date.today())
print(datetime.now())

#計算幾天前的時間
d = date.today()
delta = timedelta(days=3)
print(d + delta)
print(d - delta)

在這裏插入圖片描述

"""
atime(access time):對文件的訪問都會更改這個時間
ctime(change time):文件的內容或者屬性更改的時間,
mtime(modification time):文件的內容被修改的時間。
"""
import os
from datetime import date
from datetime import datetime
from datetime import timedelta

#計算幾個小時前或後的時間
now_time = datetime.now()					##當前時間
delta = timedelta(hours=2)
print(now_time + delta)						##2個小時之後的時間
print(now_time - delta)						##2個小時之前的時間

now_time = datetime.now()
print(now_time)
pwd_time = os.path.getmtime('/etc/passwd')		##/etc/passwd文件內容被修改的時間
print(pwd_time)
pwd_time_obj = datetime.fromtimestamp(pwd_time)
print(pwd_time_obj)
delta = now_time - pwd_time_obj
print(delta)

在這裏插入圖片描述

二、difflib文件比較

"""
'+' 包含在第二個系列行中,但不包含第一個
'-' 包含在第一個系列行中,但不包含第二個
' ' 兩個系列行一致
'?' 存在增量差異
'^' 存在差異字符
"""
import difflib
text1 = '''  1. Beautiful is better than ugly.
       2. Explicit is better than implicit.
       3. Simple is better than complex.
       4. Complex is better than complicated.
            '''.splitlines(keepends=False)		##是否保留結尾的'\n'換行符,Flase表示不保留

text2 = '''  1. Beautiful is better than ugly.
       3.   Simple is better than complex.
       4. Complicated is better than complex.
       5. Flat is better than nested.
    '''.splitlines(keepends=True)

d = difflib.Differ()
print(''.join(d.compare(text1,text2)))		##原格式的不同比較難以快速查看出來
d = difflib.HtmlDiff()
htmlContent = d.make_file(text1,text2)
# print(htmlContent)
with open('diff.html','w') as f:            ##以html格式可以很方便的看到不同
    f.write(htmlContent)

在這裏插入圖片描述
在這裏插入圖片描述

1.linux中的文件用python中的命令方法來比較

'''
執行程序後生成文件,所以不會有別的現象發生,一般沒有報錯即視爲程序沒問題,打開文件最終確認
'''
import difflib

filename1 = '/home/kiosk/passwd'
filename2 = '/home/kiosk/passwd1'

with open(filename1) as f1,open(filename2) as f2:
    content1 = f1.read().splitlines(keepends=True)		##保留換行符
    content2 = f2.read().splitlines(keepends=True)

d = difflib.HtmlDiff()
htmlContent = d.make_file(content1,content2)

with open('passwdDiff.html','w') as f:
    f.write(htmlContent)

在這裏插入圖片描述

三、sys模塊

"""
sys模塊:system,接收操作系統調用解釋器傳入的參數
"""
import os
import sys

print(sys.argv)								##查看程序執行文件的絕對路徑位置,輸出爲一個列表
print(sys.argv[0])	
print(sys.version)							##判斷使用的python版本(包括編譯器等信息)

if sys.version[0] == '2':
    print('running in python2...')
elif sys.version[0] == '3':
    print('running in python3')

print(sys.path)								##系統環境信息
print(sys.platform)							##系統的操作系統
if sys.platform == 'linux':					##查看系統的ip信息
    os.system('ifconfig')
else:
    os.system('ipconfig')

在這裏插入圖片描述

四、第三方模塊

##需要自己在聯網狀態下打開pycharm的設置下載模塊。
在這裏插入圖片描述

import qrcode
img = qrcode.make('http://www.baidu.com')
img.save('hello.png')           ##生成一個圖片,會跳轉到上面指定的網址
import random
import time

import itchat                   ##與微信相關的模塊

hotReload = True                ##保持登陸
itchat.auto_login()             ##登陸網頁微信

while True:
    itchat.send('hello westos',toUserName='filehelper')
    itchat.send_file('/tmp/passwd',toUserName='filehelper')
    time.sleep(random.randint(1,3))
friends = itchat.get_friends()
print(friends)                  ##對方掃描二維碼登陸後,這裏可以給對方的文件傳輸助手發送指定的內容

info = {}
for friend in friends[1:]:
    if friend['Sex'] == 1:
        info['male'] = info.get('male',0) + 1
    elif friend['Sex'] == 2:
        info['female'] = info.get('female', 0) + 1
    else:
        info['other'] = info.get('other',0) + 1
print(info)                     ##對方掃描二維碼登陸後,統計對方微信中的總人數及男女比例
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章