python學(xué)習(xí)一——Document Processing and Email Automation

文件處理與郵件自動化

1.標(biāo)準(zhǔn)庫OS

os常用的操作函數(shù)如下圖

image.png

1.路徑操作

  • os.path.relpath(path,start):返回從start路徑到path的相對路徑的字符串欲侮。如果沒提供start,就使用當(dāng)前工作目錄作為開始路徑。

  • os.path.dirname(path): 返回當(dāng)前路徑的目錄名稱涩馆。

  • os.path.basename(path):返回當(dāng)前路徑的文件名稱

  • 如果同時需要一個路徑的目錄名稱和基本名稱莫瞬,可以調(diào)用os.path.split()疾嗅,獲得者兩個字符串的元組黍衙。

2.路徑有效性檢查
如果提供的路徑不存在珠十,很多Python函數(shù)就會崩潰并報錯料扰。os.path模塊提供了一些函數(shù),用于檢測給定的路徑是否存在焙蹭,以及判定是文件還是文件夾晒杈。

  • os.path.exists(path):如果path參數(shù)所指的==文件或文件==夾存在,則返回True,否則返回False孔厉。

  • os.path.isfile(path):如果path參數(shù)存在拯钻,并且是一個==文件==帖努,則返回True,否則返回False。

  • os.path.isdir(path):如果path參數(shù)存在粪般,并且是一個==文件夾==拼余,則返回True,否則返回False。
    3.文件及文件夾操作

  • 用os.makedirs()創(chuàng)建新文件夾

  • os.path.getsize(path):返回path參數(shù)中文件的字節(jié)數(shù)亩歹。

  • os.listdir(path):返回文件名字符串的列表匙监,包含path參數(shù)中的每個文件。

  • 如果想知道目錄下所有文件的總字節(jié)數(shù)小作,可以同時使用 os.path.getsize() 和 os.listdir()

2.文件讀寫

文件對象可以通過Python內(nèi)置的open函數(shù)得到亭姥,完整的語法如下。

open(file,mode=r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None)

open函數(shù)有8個參數(shù)顾稀,常用前4個致份,除了file參數(shù)外,其他參數(shù)都有默認(rèn)值础拨。file指定了要打開的文件名稱氮块,應(yīng)包含文件路徑,不寫路徑則表示文件和當(dāng)前py腳本在同一個文件夾诡宗。buffering用于指定打開文件所用的緩沖方式滔蝉,默認(rèn)值-1表示使用系統(tǒng)默認(rèn)的緩沖機(jī)制。文件讀寫要與硬盤交互塔沃,設(shè)置緩沖區(qū)的目的是減少CPU操作磁盤的次數(shù)蝠引,延長硬盤使用壽命。encoding用于指定文件的編碼方式蛀柴,如GBK螃概、UTF-8等,默認(rèn)采用UTF-8鸽疾,有時候打開一個文件全是亂碼,這是因為編碼參數(shù)和創(chuàng)建文件時采用的編碼方式不一樣制肮。
mode指定了文件的打開模式冒窍。打開文件的基本模式包括r、w豺鼻、a综液,對應(yīng)讀、寫儒飒、追加寫入谬莹。附加模式包括b、t、+附帽,表示二進(jìn)制模式埠戳、文本模式、讀寫模式士葫,附加模式需要和基本模式組合才能使用乞而,如“rb”表示以二進(jìn)制只讀模式打開文件送悔,“rb+”表示以二進(jìn)制讀寫模式打開文件慢显。
要注意的是,凡是帶w的模式欠啤,操作時都要非常謹(jǐn)慎荚藻,它首先會清空原文件,但不會有提示洁段。凡是帶r的文件必須先存在应狱,否則會因找不到文件而報錯

讀取文件
有了File對象,我們就可以開始從它讀取內(nèi)容祠丝。

  • read():以原格式返回全部文本

  • readline(): 只返回第一行文本

  • readlines(): 以列表的格式返回全部文本疾呻,文本的第幾行對應(yīng)列表的第幾個元素

寫入文件
需要用“寫模式”‘w’和“添加模式”'a'打開一個文件,而不能用讀模式打開文件写半。
“寫模式”將覆寫原有的文件岸蜗,從頭開始〉“添加模式”將在已有文件的末尾添加文本

baconFile = open('bacon.txt','w')
baconFile.write('Hello world!\n')
baconFile.close()  #注意璃岳,關(guān)閉后,才能完成寫入悔捶,從txt文件中看到寫入的內(nèi)容铃慷。
baconFile = open('bacon.txt','a')
baconFile.write('Bacon is not a vegetable.')
baconFile.close()  #注意局装,關(guān)閉后殃饿,才能完成寫入,從txt文件中看到寫入的內(nèi)容圾笨。

【案例】統(tǒng)計字母出現(xiàn)頻率

from collections import Counter
my_list = []
punctuation=',.!?\堂淡,赁温。!淤齐?股囊、()【】<>《》=:+-*“”...\n'
with open('bacon.txt','r') as f:
    for line in f:
        for word in line:
            if word not in punctuation:
                my_list.append(word)

counter = Counter(my_list)
counter

3.組織文件

shutil模塊
shutil(或稱為shell工具)模塊中包含一些函數(shù),可以在Python程序中復(fù)制更啄、移動稚疹、改名和刪除文件。要使用shutil的函數(shù),首先需要import shutil
[圖片上傳失敗...(image-2d1b98-1657719038166)]

4.壓縮文件

zipfile.ZipFile('filename.zip', 'w') :以寫模式創(chuàng)建一個壓縮文件

5.文件查找模塊

  • glob
  • fnmatch
  • hashlib
  • 6.自動發(fā)送郵件

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末内狗,一起剝皮案震驚了整個濱河市怪嫌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌柳沙,老刑警劉巖岩灭,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異赂鲤,居然都是意外死亡噪径,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門数初,熙熙樓的掌柜王于貴愁眉苦臉地迎上來找爱,“玉大人,你說我怎么就攤上這事泡孩〕瞪悖” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵仑鸥,是天一觀的道長吮播。 經(jīng)常有香客問我,道長眼俊,這世上最難降的妖魔是什么意狠? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮泵琳,結(jié)果婚禮上摄职,老公的妹妹穿的比我還像新娘。我一直安慰自己获列,他們只是感情好谷市,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著击孩,像睡著了一般迫悠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上巩梢,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天创泄,我揣著相機(jī)與錄音,去河邊找鬼括蝠。 笑死鞠抑,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的忌警。 我是一名探鬼主播搁拙,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了箕速?” 一聲冷哼從身側(cè)響起酪碘,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎盐茎,沒想到半個月后兴垦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡字柠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年探越,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片募谎。...
    茶點(diǎn)故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡扶关,死狀恐怖阴汇,靈堂內(nèi)的尸體忽然破棺而出数冬,到底是詐尸還是另有隱情,我是刑警寧澤搀庶,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布拐纱,位于F島的核電站,受9級特大地震影響哥倔,放射性物質(zhì)發(fā)生泄漏秸架。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一咆蒿、第九天 我趴在偏房一處隱蔽的房頂上張望东抹。 院中可真熱鬧,春花似錦沃测、人聲如沸缭黔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽馏谨。三九已至,卻和暖如春附迷,著一層夾襖步出監(jiān)牢的瞬間惧互,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工喇伯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留喊儡,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓稻据,卻偏偏與公主長得像艾猜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容