我要偷偷的學Python,然後驚呆所有人(第三天)
前言
本系列文預設各位有一定的C或C++基礎,因為我是學了點C++的皮毛之後入手的Python,這裡也要感謝齊鋒學長送來的支援。也要感謝大家的支援,前兩篇訪問、收藏、點贊、評論量都“居高臨下”,感謝感謝,還有的朋友迫不及待等第三篇,真的很感動,雖然我寫得慢,但是晚上少打兩把遊戲也是可以提高更新速度的啦。
“你的如意金箍棒”已到貨,請簽收
今天我們要講一下Python裡面比較重要的一環,也就是Python能夠異軍突起的非常重要的一個原因。
大家有沒有想過,在這個程式語言滿天飛的時代,有老牌玩家C/C++,前端PHP,H5,新秀Java,數學界有MATLAB和R,為什麼Python能夠脫穎而出呢?
對,因為Python是個萬金油般的存在!它可以去呼叫各種各樣的包來為它工作,包裡面有各種的函式,比方說我現在要用Python來處理一大堆的Excel表格,那我是不是要自己寫表格處理函式呢?並不是的,自己寫太麻煩,為什麼不站在巨人的肩膀上呢?有個包叫‘csv’的,專門用來幹這個事情,那我把它喊過來不就好了嘛。
對,就是模組呼叫,學完之後,就可以用Python去批次處理表格啊、去做簡單的人臉識別啊、去做些小專案。
怎麼樣,是不是特別激動!!!
好,別急,慢慢來。這裡呢,需要大家有一款稱手的編譯器了,可以是VS(支援py程式設計的),也可以是pycharm,或者其他的。
我用的是pycharm,VS開起來太大了。
下載pycharm之前,要先下載一個Python,現在是北京時間:2020-10-19,最新版是3.9.0。
這倆東西在各自官網上都有推薦最新版,安裝也很方便,基本就是一路next,不過建議不要安裝在C盤。
大家動起來!!!
然後,這篇以及下一篇將會帶大家用Python操作檔案,操作Excel。
檔案讀寫
函式和類講完,自然也就是檔案讀寫流了。
在學完資料庫的一段時間裡,我一度認為檔案讀寫沒啥用了,這年頭誰還用檔案吶,後來發現我錯了。
計算機編碼表
我們先來看一張計算機編碼表:
編碼表 | 適用性 | 特點 |
---|---|---|
ASCII碼 | 英文大小寫字元,不支援中文 | 美國人的發明,佔用空間小 |
GB2312碼、GBK碼 | 支援了中文 | GBK碼是GB2312的升級 |
Unicode碼 | 支援國際語言 | 佔用空間大,適用性強。 |
UTF- 8碼 | 支援國際語言 | 轉化,佔用空間小。ASCII碼被UTF- -8碼包含 |
檔案讀寫,是Python程式碼呼叫電腦檔案的主要功能,能被用於讀取和寫入文字記錄、音訊片段、Excel文件、儲存郵件以及任何儲存在電腦上的東西。
我用C++做過檔案讀寫,再Linux上,在Windows上,也用QT寫過有介面的檔案讀寫,現在來試試Python的。
讀取檔案
具體流程如下:
(以後就換圖片風格啦,我用圖片也是為了大家看的更直觀嘛)
第一步:開啟檔案
首先在建立一個測試檔案,比如說放在桌面上的test.txt檔案,裡面隨便寫上點啥,開啟你的編譯器,新建一個project,開始程式設計。
file1這個變數是存放讀取的檔案資料的,以便對檔案進行下一步的操作。
(可以看出來有三個引數吧)
引數釋義:
第一個引數是檔案的儲存地址,一定要寫清楚,否則計算機找不到
這裡有兩種方法,一種是寫檔案的絕對路徑,一種是檔案的相對路徑。我上面那種寫法就是絕對路徑,如果要用相對路徑的話嘛,也可以把檔案拖動到你的專案檔案下,然後:看圖吧
對吧,這幾種方式都是可以的,不過如果新手的話建議使用絕對路徑,絕對路徑用熟了再說。
怎麼看絕對路徑?右擊檔案->屬性
絕對路徑 and 相對路徑 注意點 liaoning/
- 絕對路徑就是最完整的路徑,相對路徑指的就是【相對於當前資料夾】的路徑,也就是你編寫的這個py檔案所放的資料夾路徑!
- Windows系統裡,常用\來表示絕對路徑,/來表示相對路徑
- 別忘了\在Python中是跳脫字元,所以時常會有衝突。為了避坑,Windows的絕對路徑通常要稍作處理,寫成以下兩種格式
第二個引數是許可權位,主要有這麼一些:
r(read,讀) | r只讀,指標在開頭,檔案不存在則報錯 | rb二進位制只讀,其餘同左 | r+讀寫,其餘同左 | rb+二進位制讀寫,其餘同左 |
---|---|---|---|---|
w(write,寫) | w只寫,檔案不存在則新建,存在則覆蓋 | wb二進位制只寫,其餘同左 | w+讀寫,其餘同左 | wb+二進位制讀寫,其餘同左 |
a(append,追加) | a追加,檔案存在指標放在末尾,檔案不存在則新建 | ab二進位制追加,其餘同左 | a+追加且可讀,其餘同左 | ab+二進位制追加且可讀,其餘同左 |
第三個引數encoding=‘utf-8’,表示的是返回的資料採用何種編碼,一般採用utf-8或者gbk。
第二步:讀取檔案
開啟檔案之後,就可以用read()函式進行讀取的操作了,這個上邊其實已經有體現了,read()函式啊。
但是,其實並沒有這麼簡單,如果我想一行一行讀呢?如果我想一個單詞一個單詞讀呢?怎麼辦?
這裡,我們需要使用一個新函式readlines(),顧名思義,一行一行讀。
認真看啊:
資訊量不大啊,看完我們來進行下一步切割。
這裡雖然把每行都分開了,但是我們是要把每個數字都分開是吧,顯然現在我們還不能滿意。
那就用字串切割函式吧:split()
split()是把字串分割的,而還有一個join()函式,是把字串合併的。
執行結果:
第三步:關閉檔案
關閉檔案,使用的是close()函式。
為啥要關閉檔案呢?原因有兩個:1.計算機能夠開啟的檔案數量是有限制的,open()過多而不close()的話,就不能再開啟檔案了。2.能保證寫入的內容已經在檔案裡被儲存好了。
檔案關閉之後就不能再對這個檔案進行讀寫了。如果還需要讀寫這個檔案的話,就要再次 open() 開啟這個檔案。
這裡再順便補充一個用法,為了避免開啟檔案後忘記關閉,佔用資源或當不能確定關閉檔案的恰當時機的時候,我們可以用到關鍵字with,之前的例子可以寫成這樣:
寫入檔案 question/
開啟檔案嘛,我就不多說啦,把‘r’改成‘w’,具體看上面那個表格。
你去寫,寫完之後你就會驚喜的發現,原檔案內容被洗掉重寫了。。
如果不想出現這種情況的話,可以將‘w’改成‘a’
那麼 b 有什麼用呢,那個二進位制的。
因為有很多檔案在計算機中的儲存,它是採用二進位制的,並不是肉眼能看得懂的文字資訊。
比方說音訊,比方說圖片等等。這時候就需要使用 ‘b’ 許可權的加持了。
小練習
學了這個檔案讀寫處理啊,我們來玩點小遊戲吧。
這裡有一組資料:
然後把每列資料求和,寫在檔案下邊:
放兩張圖隔開,再放上我的實現 /cure/
我的程式碼 /liaoning/
這裡要注意一點就是你的文字檔案不能有’空行’,這個空行往往肉眼看不見,,,,,
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30239065/viewspace-2728776/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 我要偷偷的學Python,然後驚呆所有人(第四天)Python
- 我要偷偷的學Python,然後驚呆所有人(第七天)Python
- 我要偷偷的學Python,然後驚呆所有人(第一天)Python
- 你要偷偷學會排查線上CPU飆高的問題,然後驚豔所有人!
- 打工人書單 | 我要悄悄讀書 然後驚豔所有人
- 黑客:你要悄悄變富,然後驚豔所有人……黑客
- 你要默默的學會這些,慢慢的驚豔所有人
- 我在偷偷學Python的第十八天(匿名函式)Python函式
- 被鄰居偷偷拉了條網線到他家,然後在他裝潢WiFi,我怎麼讓他不能使用我的網路?WiFi
- 學習python的第三天;正試學習python的第二節課Python
- 的武器few過熱和文革前發給我然後
- 如果我是小白,學Python要準備什麼呢?Python
- 地產大佬潘石屹:人生苦短,我要學PythonPython
- 傳聞:誰控制了前端入口,誰就是IT行業的主宰!看完驚呆前端行業
- python第三天Python
- 6種動態報表的應用和製作,偷偷學會,年底驚豔領導和同事
- 一位朋友來我們司面試,然後。。面試
- 剛用《百面千相》驚呆全網,疊紙又放大招,這回「暖暖開放世界」要來了!
- 用 python 偷偷給班級群女同學的顏值進行排名Python
- 學Python好久都學不會?然後選擇放棄,總結出這幾個原因Python
- 我用 Python 找出了刪除我微信的所有人並將他們自動化刪除了Python
- 人生苦短,要學Python!Python
- Python自學要點!Python
- 震驚!我勸你別盲目跟風學Python!網友:求求別在刷屏了...Python
- 試試哈然後
- 為什麼要選擇學習python?學習python的原因!Python
- 如何應用“防呆法”的原理於我們的工作上?
- 我的 Python 網路爬蟲直播分享要來了!Python爬蟲
- 防呆設計/防呆處理
- 我為什麼要學技術
- 雖然是我遇到的一個棘手的生產問題,但是我寫出來之後,就是你的了。
- 我的Java後端學習之路Java後端
- 和ChatGPT聊了一會天它的學習反映能力驚呆了我ChatGPT
- 【GPT3.5Turbo 開放之後】客服同學竟然偷偷摸起了魚GPT
- 攤牌了,作為開發者,我經常用這14個 Github 偷偷學習Github
- 學習css第三天CSS
- golang學習第三天Golang
- web前端學習之路的第三天Web前端