一,、前言今天筆者想和大家聊聊python的基礎,主要講解Python中的文件基礎操作等內(nèi)容,,是文件操作的基礎講解,,在后續(xù)的自動化測試中會需要使用到,所以有興趣的可以跟著我一起學習下去喲,。 二,、文件操作合集2.1 open函數(shù)講解 2.1.1 open函數(shù)創(chuàng)建 open函數(shù)主要用于打開一個文件,創(chuàng)建一個file的對象,,最基礎的用法如下代碼所示: # open函數(shù)中有一個位置參數(shù),我們需要傳file,,文件名f = open('love.txt')# open函數(shù)也有返回值,,返回的是一個文件對象print(f) 2.1.2 讀取文件所有(read) 往往我們要打開一個文件,,都是要獲取文件中的數(shù)據(jù)使用或閱讀,我們可以通過open函數(shù)中的read方式來讀取文件,,讀取出的文件類型為字符串類型:
在文件為全英文時可直接操作打開,,同樣的一段代碼,,不同的文本內(nèi)容,,如果文件中含有中文,、日文,、韓文等內(nèi)容,,那么必須在open函數(shù)后加上utf-8或utf8,,否則打印會出現(xiàn)UnicodeDecodeError的報錯: '''錯誤版本,,沒有utf-8'''# open函數(shù)中有一個位置參數(shù),我們需要傳file,,文件名f = open('love.txt')# 讀取一個文件我們使用read,它可以獲取文件內(nèi)容read_my_file = f.read()print(read_my_file)'''正確版本,,有加utf-8,能夠識別非英文內(nèi)容'''# open函數(shù)中有一個位置參數(shù),,我們需要傳file,文件名f = open('love.txt', encoding='utf-8')# 讀取一個文件我們使用read,,它可以獲取文件內(nèi)容read_my_file = f.read()# open函數(shù)也有返回值,,返回的是一個文件對象print(read_my_file) 2.1.3 讀取文件第一行(readline) 除了讀取文件的所有內(nèi)容以外,,我們還可以獲取文件的第一行,文件的第一行獲取我們通過readline來進行獲取,,先看一個錯誤的示例,。
如上代碼和結(jié)果顯示,,實際上沒有打印任何的內(nèi)容,Python是根據(jù)光標位置來讀取數(shù)據(jù)的,,主要的原因是因為當我們讀取完文件的所有內(nèi)容時,光標處于最末尾的位置,,如果我們想要讀取第一行的數(shù)據(jù)有兩種方式,,第一種是關(guān)閉文件重新進行讀取,,第二種是把光標移動到最初始的位置并進行讀取,,那么我們先行演示第一種方式: # open函數(shù)中有一個位置參數(shù),,我們需要傳file,,文件名f = open('love.txt', encoding='utf-8')# 讀取一個文件我們使用read,,它可以獲取文件內(nèi)容read_my_file = f.read()# open函數(shù)也有返回值,,返回的是一個文件對象print(read_my_file)# 關(guān)閉文件f.close()# 重新以utf-8的格式讀取該文件f = open('love.txt', encoding='utf-8')# 讀取文件的第一行內(nèi)容first = f.readline()print(f'獲取的第一行的數(shù)據(jù)是{first}') 除了直接關(guān)閉文件以外,,我們也可以通過移動光標的方式達成目的,,將光標位置移動至最開始的位置,使用seek函數(shù):
2.1.4 讀取文件所有行并保存為列表(readlines) readlines用保存所有行并將數(shù)據(jù)保存至一個列表,,每一個列表元素就是一行數(shù)據(jù),每個元素末尾會有一個\n表示在這里換行: f = open('love.txt', encoding='utf-8')first = f.readlines()print(f'獲取的列表數(shù)據(jù)為:{first}') 2.1.5 文件寫入模式(write) 寫入文件我們使用write函數(shù)進行文件內(nèi)容的寫入,,我們先看下錯誤例子:
open函數(shù)中默認的mode參數(shù)是r,,當我們想要寫入數(shù)據(jù)時,需要修改為寫入模式,,如果你已經(jīng)擁有了這個文件且有數(shù)據(jù)內(nèi)容,,每一次打開這個文件,以寫入模式進行寫入,,會覆蓋之前的寫入,,如果沒有文件,則創(chuàng)建后直接寫入: # 默認mode='r',,將mode修改為wf = open('love.txt', encoding='utf-8', mode='w')f.write('I love CPDD') 相信大家已經(jīng)知道寫入模式的弊端了,,當有重要數(shù)據(jù)時,顯然我們用寫入模式有可能會覆蓋掉重要數(shù)據(jù),,往往我們的寫入是新增,例如新增備注,、測試用例等等,,那么我們需要使用到追加模式,,只需要將mode的參數(shù)改為a即可:
通常而言測試用例以及備注一行就是一條,,我們是需要換行寫入數(shù)據(jù)的,,那么換行新增數(shù)據(jù),,我們可以在寫入的內(nèi)容后加入\n,,以此換行即可: f = open('love.txt', encoding='utf-8', mode='a')f.write('I love ShenZhen\n')f.write('I love NBA\n') 2.1.6 自動關(guān)閉文件(with) 在我們打開一個文件后一定要記得關(guān)閉,,否則其他人就會無法打開并使用,,如下代碼所示:
人嘛…畢竟還是會忘記一些事情的…寫個100次1000次,,總會有1次2次忘記的,,Python怕我們忘記,貼心的準備with語句,,以防止出現(xiàn)忘記的情況,。 筆者更建議使用with語句,with語句的原理是,,冒號:下子代碼在全部執(zhí)行完成后,,自動執(zhí)行close,,以達到防忘的目的。 '''第一種寫法,,這種寫法需要我們使用close手動關(guān)閉這個文件'''f = open('love.txt', encoding='utf-8', mode='r')read = f.read()f.close()'''第二種寫法,,通過with語句,,就不需要使用close關(guān)閉文件,,防止忘記關(guān)閉文件在后續(xù)引來一些報錯麻煩格式:with open(文件參數(shù),xxx,xxx) as 變量名:'''with open('love.txt', encoding='utf-8') as f: f.read() 總結(jié)今天的這篇文章就到這里了喜歡的小伙伴可以點贊收藏評論加關(guān)注喲。 |
|
來自: 新用戶0935snDB > 《待分類》