Python 学习笔记(3)对txt文件的读与写操作(上)
目錄
1、file 對象
2、open() 方法
3、txt文件的讀與寫
3.1、寫txt文件
3.2、讀txt文件
?3.2、在文件末尾續寫文件
4、寫在最后
1、file 對象
????????file 對象使用 open 函數來創建,下表列出了 file 對象常用的函數:
| 序號 | 方法及描述 | 
| 1 | file.close() 關閉文件。關閉后文件不能再進行讀寫操作。 | 
| 2 | file.flush() 刷新文件內部緩沖,直接把內部緩沖區的數據立刻寫入文件, 而不是被動的等待輸出緩沖區寫入。 | 
| 3 | file.fileno() 返回一個整型的文件描述符(file descriptor FD 整型), 可以用在如os模塊的read方法等一些底層操作上。 | 
| 4 | file.isatty() 如果文件連接到一個終端設備返回 True,否則返回 False。 | 
| 5 | file.next() 返回文件下一行。 | 
| 6 | file.read([size]) 從文件讀取指定的字節數,如果未給定或為負則讀取所有。 | 
| 7 | file.readline([size]) 讀取整行,包括 "\n" 字符。 | 
| 8 | file.readlines([sizeint]) 讀取所有行并返回列表,若給定sizeint>0,則是設置一次讀多少字節,這是為了減輕讀取壓力。 | 
| 9 | file.seek(offset[, whence]) 設置文件當前位置 | 
| 10 | file.tell() 返回文件當前位置。 | 
| 11 | file.truncate([size]) 截取文件,截取的字節通過size指定,默認為當前文件位置。 | 
| 12 | file.write(str) 將字符串寫入文件,返回的是寫入的字符長度。 | 
| 13 | file.writelines(sequence) 向文件寫入一個序列字符串列表,如果需要換行則要自己加入每行的換行符。 | 
2、open() 方法
????????Python的open()方法用于打開一個文件,并返回文件對象,在對文件進行處理過程中需要用到這個函數,如果文件無法被打開,會拋出ODSError。
????????注意:使用open()方法一定要保證關閉文件對象,即調用close()方法。
open(file, mode='r')????????file:文件路徑(相對或者絕對路徑),mode:對文件的打開方式(可選)
????????完整的語法格式為:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)????????參數說明:
????????下圖為mode的一些打開方式:
| 模式 | 描述 | 
| t | 文本模式 (默認)。 | 
| x | 寫模式,新建一個文件,如果該文件已存在則會報錯。 | 
| b | 二進制模式。 | 
| + | 打開一個文件進行更新(可讀可寫)。 | 
| U | 通用換行模式(不推薦)。 | 
| r | 以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。 | 
| rb | 以二進制格式打開一個文件用于只讀。文件指針將會放在文件的開頭。這是默認模式。一般用于非文本文件如圖片等。 | 
| r+ | 打開一個文件用于讀寫。文件指針將會放在文件的開頭。 | 
| rb+ | 以二進制格式打開一個文件用于讀寫。文件指針將會放在文件的開頭。一般用于非文本文件如圖片等。 | 
| w | 打開一個文件只用于寫入。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。 | 
| wb | 以二進制格式打開一個文件只用于寫入。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。一般用于非文本文件如圖片等。 | 
| w+ | 打開一個文件用于讀寫。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。 | 
| wb+ | 以二進制格式打開一個文件用于讀寫。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。一般用于非文本文件如圖片等。 | 
| a | 打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。 | 
| ab | 以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。 | 
| a+ | 打開一個文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用于讀寫。 | 
| ab+ | 以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用于讀寫。 | 
3、txt文件的讀與寫
3.1、寫txt文件
????????首先定義一個文件名??
FileName = 'w1.txt'????????打開這個文件并且定義打開這個函數的模式;模式比較多(文末會列出來),這邊選用幾個常用的模式做演示。
# 以文本的形式打開一個指定文件夾(這個時候寫入內容都要是str類型的,也就是字符串類型), # 如果沒有就創建,如果有就將原來的內容覆蓋 fid = open(Folder + '/' + FileName, 'w') # 這邊賦值三條字符串 S1 = 'hello python' # 換行操作,轉義字符 \n 換行 或者\r 回車 S2 = '\n' S3 = 'I am NemoYxc' # 用write函數將著三個字符串寫到指定文件中 fid.write(S1+S2+S3) # 將這個文件關閉,關閉后文件不能再進行讀寫操作;如果這一步沒有執行, # 那么我們上面寫入的字符串也沒有作用。 fid.close()????????看看效果:
3.2、讀txt文件
首先,和寫文件的時候一樣,打開這個文件并且定義打開這個函數的模式;
FileName = 'w1.txt'fid = open(Folder + '/' + FileName, 'r')# 全部讀取 # 讀取文件中所有的數據并返回 r1 = fid.read()# 讀取一行數據并返回(代轉義字符\n) r2 = fid.readline()# 讀取所有行并返回列表 r3 = fid.readlines()fid.close()?3.2、在文件末尾續寫文件
????????前面介紹的方法要么新創建文件寫入數據、要么會將原來的數據覆蓋寫入新的數據,下面介紹一種模式,可以在一個文件中續寫數據。
????????還是一樣,指定文件名打開文件,模式變成了a,表示打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。
FileName = 'w1.txt' fid = open(Folder + '/' + FileName, 'a') S4 = '\n' S5 = 'the next is ...' fid.write(S4+S5) fid.close() 還是和原來一樣,寫入數據后關閉。?????????可以看到我們成功添加了最后一行字符串在原來的文件內容之后。
4、寫在最后
?????????這一篇文章主要記錄了如何向txt文件文件寫、讀字符串,但是我們有時候處理數據的時候 需要往文件中讀或者寫float數據,目前博主有兩種方法,1、將float數據轉換為str,按照上面的方法存到txt中;2、轉換成二進制寫到文件中;關于第一種方法,直接將float數據轉換為字符串的形式就可以了,那么第二種方法博主將在后面一篇文章中與大家分享。
文中對應的代碼:
Project_File.rar-嵌入式文檔類資源-CSDN文庫https://download.csdn.net/download/yanchuan23/36135222
總結
以上是生活随笔為你收集整理的Python 学习笔记(3)对txt文件的读与写操作(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Python 学习笔记(2)创建文件夹
- 下一篇: Python 学习笔记(3)对txt文件
