溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python中re time os sys模塊

發(fā)布時間:2020-07-06 18:44:59 來源:網(wǎng)絡(luò) 閱讀:860 作者:飛天喜歡yu 欄目:編程語言

re模塊

正則表達(dá)式

這里寫反斜杠也是轉(zhuǎn)義的意思,python在re模塊中使用都需要加反斜杠

  • \d 是匹配一個數(shù)字
  • \+ 大于等于1
  • \w 匹配數(shù)字字母下劃線和中橫杠
  • \* 匹配0個或多個
  • \t 指標(biāo)符
  • . 除了回車意外的的所有
  • * 大于等于0
  • + 大于等于1
  • ? 0或1
  • {m},{m,n} 出現(xiàn)m次,出現(xiàn)m到n次,包括mn

    re匹字符串

    re.match()

  • re.match(pattern, string, flags)
    默認(rèn)有3個參數(shù),是最后一個我們不是很關(guān)注他,就默認(rèn)。
    通過你前面寫的pattern(正則表達(dá)式的意思),匹配后面的string(字符串),他只能在你給的字符串的起始位置查找,注意和search的區(qū)別。
    還有根據(jù)實踐的結(jié)果,如果匹配失敗返回none

    re.search()

    他和match有相同的作用,但是有區(qū)別。他會在整個字符串內(nèi)容中匹配,直到找到第一個相匹配的字符串。

    re.findall()

    他和match和search差不多,但是他是找出字符串中所有的

    import re
    result1 = re.match('\d+','dshfjasdsf23432dhfhsjdjfhjsd')
    if result1:
    print result1.group()
    result2 = re.search('\d+','dshfjasdsf23432dhfhsjdjfhjsd')
    print result2
    print result2.group()
    result3 = re.findall('\d+','dshfjasdsf23432dhfhsjdjfhjsd34')
    print  result3
    #輸出結(jié)果:
    <_sre.SRE_Match object at 0x0000000002BFA510>
    23432
    ['23432', '34']

    編譯正則表達(dá)式

    re.compile

    他和編譯生成的.pyc文件差不多,.pyc是為了再次使用時快速調(diào)用。正則表達(dá)式也可以經(jīng)過編譯,編譯之后匹配其他的也會加快匹配速度

    com = re.compile('\d+')
    print type(com)
    輸出結(jié)果:
    <type '_sre.SRE_Pattern'>
    他返回了一個對象
  • 使用方法:
    也就是直接調(diào)用返回對象findall函數(shù)
    com = re.compile('\d+')
    print com.findall('dshfjasdsf23432dhfhsjdjfhjsd34')

練習(xí)

  • 匹配一個文件中的所有字符串
import re
f = open('love.txt','r')
feitian = f.read()
f.close()
print re.findall('a',feitian)
##也可以一行一行的匹配
f = open("love.txt", "r")  
while True:  
    line = f.readline()  
    if line:  
        line=line.strip()
        p=line.rfind('.')
        filename=line[0:p]
        print  line
    else:  
        break
f.close()
輸出:
['a', 'a', 'a']

正則表達(dá)式中的分組

result2 = re.search('(\d+)\w*(\d+)','dshfjasdsf23432dhfhs23423jdjfhjsd')
print result2.group()
print result2.groups()
#輸出結(jié)果:
23432dhfhs23423
('23432', '3')
#注意: 他不重復(fù)拿,這里解釋一下為什么第二個輸出為3,因為中間都被\w*接收了,這里我們在給一個例子
result2 = re.search('(\d+)dhfhs(\d+)','dshfjasdsf23432dhfhs23423jdjfhjsd')
print result2.group()
print result2.groups()
輸出結(jié)果:
23432dhfhs23423
('23432', '23423')

練習(xí)

  • 匹配一個字符串中的ip
    import re
    ip = 'sdhflsdhfj1723.234.234234.df.34.1234.df.324.xc.3+dsf172.25.254.1 sdfjk2130sdkjf.sdjfs'
    result1 = re.findall('(?:\d{1,3}\.){3}\d{1,3}',ip)
    result2 = re.findall('[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}',ip)
    print result1
    print result2
    #輸出結(jié)果:
    ['172.25.254.1']
    ['172.25.254.1']

    time 模塊

    python中re time os sys模塊

    時間的表示方式

import time 
print time.time()
1510923748.06
#計算從1970年1月1日到現(xiàn)在有多少秒
print time.gmtime()
time.struct_time(tm_year=2017, tm_mon=11, tm_mday=17, tm_hour=13, tm_min=2, tm_sec=28, tm_wday=4, tm_yday=321, tm_isdst=0)
格式化成一個對象,他是當(dāng)前的時間
print time.strftime('%Y%m%d')
20171117
輸出格式化之后的時間,他的格式化和linux一樣

他們之間的轉(zhuǎn)換

python中re time os sys模塊

print time.strptime('2017-11-17','%Y-%m-%d')
time.struct_time(tm_year=2017, tm_mon=11, tm_mday=17, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=321, tm_isdst=-1)
#將字符串轉(zhuǎn)化成結(jié)構(gòu)化的時間格式
print time.localtime()
print time.mktime(time.localtime())
time.struct_time(tm_year=2017, tm_mon=11, tm_mday=17, tm_hour=21, tm_min=17, tm_sec=57, tm_wday=4, tm_yday=321, tm_isdst=0)
1510924677.0
#結(jié)構(gòu)化的時間轉(zhuǎn)化成時間戳的格式
#字符串格式的時間轉(zhuǎn)時間戳格式他不能直接轉(zhuǎn),必須要中轉(zhuǎn)

python中re time os sys模塊
第一部分時間戳形式存在,第二部分以結(jié)構(gòu)化形式存在,第三部分以字符串形式存在

os模塊

  • os.sep可以取代操作系統(tǒng)特定的路徑分隔符。windows下為 “\”
  • os.name字符串指示你正在使用的平臺。比如對于Windows,它是'nt',而對于Linux/Unix用戶,它是'posix'。
  • os.getcwd()函數(shù)得到當(dāng)前工作目錄,即當(dāng)前Python腳本工作的目錄路徑。
  • os.getenv()獲取一個環(huán)境變量,如果沒有返回none
  • os.putenv(key, value)設(shè)置一個環(huán)境變量值
  • os.listdir(path)返回指定目錄下的所有文件和目錄名。
  • os.remove(path)函數(shù)用來刪除一個文件。
  • os.system(command)函數(shù)用來運行shell命令。
  • os.linesep字符串給出當(dāng)前平臺使用的行終止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。
  • os.path.split(p)函數(shù)返回一個路徑的目錄名和文件名。
  • os.path.isfile()和os.path.isdir()函數(shù)分別檢驗給出的路徑是一個文件還是目錄。
  • os.path.existe()函數(shù)用來檢驗給出的路徑是否真地存在
  • os.curdir:返回當(dāng)前目錄('.')
  • os.chdir(dirname):改變工作目錄到dirname
  • os.path.getsize(name):獲得文件大小,如果name是目錄返回0L
  • os.path.abspath(name):獲得絕對路徑
  • os.path.normpath(path):規(guī)范path字符串形式
  • os.path.splitext():分離文件名與擴展名
  • os.path.join(path,name):連接目錄與文件名或目錄
  • os.path.basename(path):返回文件名
  • os.path.dirname(path):返回文件路徑
  • os.stat() 相當(dāng)于 Linux 下 stat 命令
  • os.listdir() 列出給定目錄的內(nèi)容
  • os.mkdir(path) 創(chuàng)建目錄
  • os.mkdirs(path) 創(chuàng)建目錄樹,相當(dāng)于mkdir -p 操作

    sys模塊

  • sys.argv 獲取傳遞給腳本的參數(shù),參數(shù)解析類似于 bash 的方式,第
    一個參數(shù)代表腳本本身
  • sys.exit(n) 退出程序,正常退出時exit(0)
  • sys.version 獲取Python解釋程序的版本信息
  • sys.maxint 最大的Int值
  • sys.path 返回模塊的搜索路徑,初始化時使用PYTHONPATH環(huán)境變量的值
  • sys.platform 返回操作系統(tǒng)平臺名稱
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI