python小白檔案讀取

m0_48787202發表於2020-09-28
                    2020年9月27日

study with me Day 1

Note

21級畢業的統計學碩士;
金融數學,隨機過程,機器學習均有涉獵;
我曾經看到過一句話共勉
花半秒鐘就看透事物本質的人,和花一輩子都看不透事物本質的人,註定是截然不同的命運。
有幸到世界top50的學校學習過一段時間以後,帶給我的是真正的思維的變化
也是內在驅動力的變化,總之,世界很大,儘自己所能。

編輯器中的檔案讀寫

檔案讀寫,是Python程式碼呼叫電腦檔案的主要功能,能被用於讀取和寫入文字記錄、音訊片段、Excel文件、儲存郵件以及任何儲存在電腦上的東西。
假如你有一項工作,需要把100個Word文件裡的資料合併到1個檔案上,一個個地複製貼上多麻煩啊,這時你就能用上Python了。或者,當你要從網上下載幾千條資料時,直接用Python幫你把資料一次性存入檔案也是相當方便。
這時,Python把我們從重複性工作中解放出來呢~

  1. 開啟檔案 ,用open函式開啟檔案,
file1 = open('/Users/Ted/Desktop/test/abc.txt','r',encoding='utf-8')

file1這個變數是存放讀取的檔案資料的,以便對檔案進行下一步的操作
open()函式裡面有三個引數

'/Users/Ted/Desktop/test/abc.txt'
'r'
encoding='utf-8'

第一個引數是檔案的儲存地址
不過檔案的地址有兩種:相對路徑和絕對路徑,拖到終端獲取的地址是絕對路徑。
這兩種地址,Mac和Windows電腦還有點傲嬌地不太一樣,下面我就幫大家捋一捋。
絕對路徑就是最完整的路徑,相對路徑指的就是【相對於當前資料夾】的路徑,也就是你編寫的這個py檔案所放的資料夾路徑!如果你要開啟的檔案和open.py在同一個資料夾裡,這時只要使用相對路徑就行了,而要使用其他資料夾的檔案則需使用絕對路徑。

open('/Users/Ted/Desktop/test/abc.txt'')   #絕對路徑
open('abc.txt')    #相對路徑
#相對路徑也可以寫成open('./abc.txt')

Windows系統裡,常用\來表示絕對路徑,/來表示相對路徑,所以當你把檔案拖入終端的時候,絕對路徑就變成:

C:\Users\Ted\Desktop\test\abc.txt

別忘了\在Python中是轉義字元,所以時常會有衝突。為了避坑,Windows的絕對路徑通常要稍作處理,寫成以下兩種格式;

open('C:\\Users\\Ted\\Desktop\\test\\abc.txt')
#將'\'替換成'\\'
open(r'C:\Users\Ted\Desktop\test\abc.txt')
#在路徑前加上字母r

獲取檔案的相對路徑還有個小竅門,用VS Code開啟資料夾,在檔案點選右鍵,選擇:

複製相對路徑
複製路徑

  1. 讀取檔案
    第二個參數列示開啟檔案時的模式。這裡是字串 ‘r’,表示 read,表示我們以讀的模式開啟了這個檔案。
    除了’r’,其他還有’w’(寫入),‘a’(追加)等模式
    第三個引數encoding=‘utf-8’,表示的是返回的資料採用何種編碼,一般採用utf-8或者gbk。注意這裡是寫encoding而不是encode噢;
    開啟檔案file1之後,就可以用read()函式進行讀取的操作了。請看程式碼:
file1 = open('/Users/Ted/Desktop/test/abc.txt', 'r',encoding='utf-8') 
filecontent = file1.read()  

第1行程式碼是我們之前寫的。是以讀取的方式開啟了檔案“abc.txt”。
第2行程式碼就是在讀取file1的內容,寫法是變數file1後面加個.句點,再加個read(),並且把讀到的內容放在變數filecontent裡面,這樣我們才能拿到檔案的內容。
那麼,現在我們想要看看讀到了什麼資料,可以用print()函式看看,可參考下面的程式碼:

file1 = open('/Users/Ted/Desktop/test/abc.txt','r',encoding='utf-8') 
filecontent = file1.read()   
print(filecontent)

在編輯器視窗【右鍵】,選擇【在終端中執行Python檔案】
關閉檔案,使用的是close()函式。

file1 = open('/Users/Ted/Desktop/test/abc.txt','r',encoding='utf-8') 
filecontent = file1.read()            
print(filecontent)
file1.close()    

昨天敲到一半就去玩耍啦~
今天晚上會持續更新der, love ya~

相關文章