在使用Python的過程中,需要對各種文件進行處理如excel、csv、txt等,這篇文章主要總結對txt文件的各種操作。
目錄
1.打開文件--open()方法
語法:
file object = open(file_name [, access_mode][, buffering])
參數詳解:
- file_name:file_name變量是一個包含了你要訪問的文件名稱的字符串值。
- access_mode:access_mode決定了打開文件的模式:只讀,寫入,追加等。所有可取值見如下的完全列表。這個參數是非強制的,默認文件訪問模式爲只讀(r)。
- buffering:如果buffering的值被設爲0,就不會有寄存。如果buffering的值取1,訪問文件時會寄存行。如果將buffering的值設爲大於1的整數,表明了這就是的寄存區的緩衝大小。如果取負值,寄存區的緩衝大小則爲系統默認。
下面是小白總結出來常用到的打開文件模式及其含義:
下面就舉一個實際的例子:
fo = open("D:/chen_lib工作文檔/works/IM/dict_test.txt", "w")
print ("訪問模式 : ", fo.mode)
結果:
其中mode屬性,就是看我們上面所說的哪種方式打開,w就是寫入模式。
訪問模式 : w
這裏就介紹一下,文件打開後的文件對象,所具有的常用屬性:
fo = open("D:/chen_lib工作文檔/works/IM/dict_test.txt", "w")
print ("訪問模式 : ", fo.mode)#返回被打開文件的訪問模式。
print ("文件名: ", fo.name)#返回文件的名稱。
print ("是否已關閉 : ", fo.closed)#返回true如果文件已被關閉,否則返回false。
結果:
訪問模式 : w
文件名: D:/chen_lib工作文檔/works/IM/dict_test.csv
是否已關閉 : False
2.讀文件--read()方法
read()方法從一個打開的文件中讀取一個字符串。需要重點注意的是,Python字符串可以是二進制數據,而不是僅僅是文字。
fo = open("D:/chen_lib工作文檔/works/IM/dict_test.txt", "r+")
str = fo.read(2)
print ("讀取的字符串是 : ", str)
# 關閉打開的文件
fo.close()
結果:
讀取的字符串是 : 好的
3.寫文件--write()方法
write()方法可將任何字符串寫入一個打開的文件。需要重點注意的是,Python字符串可以是二進制數據,而不是僅僅是文字。
write()方法不會在字符串的結尾添加換行符('\n'):
fo = open("D:/chen_lib工作文檔/works/IM/dict_test.txt", "a+")
fo.write('添加')
fo.close()
可以看到,添加被加在了最後。
我們原來的是一個詞爲一行,新添加的也想單獨成一行,那麼就需要如下操作即可:
fo = open("D:/chen_lib工作文檔/works/IM/dict_test.txt", "a+")
fo.write('\n添加1')
fo.close()
這樣就實現了換行添加:
4.關閉文件--close()方法
在用open方式打開文件時,在讀寫完成,都要使用close方法關閉文件,這是約定俗成的行爲,因爲File 對象的 close()方法刷新緩衝區裏任何還沒寫入的信息,並關閉該文件,這之後便不能再進行寫入。
語法:fo問你自定義命名的文件名,前面小白用了fo命名,這裏就用fo
fo.close()
5.文件定位
5.1文件內的當前位置--tell()方法
fo = open("D:/chen_lib工作文檔/works/IM/dict_test.txt", "r+")
# 查找當前位置
position = fo.tell()
print ("當前文件位置 : ", position)
# 關閉打開的文件
fo.close()
結果:
我們是剛打開文件,所以第一個位置的標號爲0
當前文件位置 : 0
5.2改變當前文件的位置--seek()方法
fo = open("D:/chen_lib工作文檔/works/IM/dict_test.txt", "r+")
# 把指針再次重新定位到文件開頭
position = fo.seek(0, 0)
str = fo.read(2)
print ("重新讀取字符串 : ", str)
# 關閉打開的文件
fo.close()
結果:
我們這裏重新定位之後,和剛打開文件時候,讀到的第三個位置應該和前面直接打開,定位到第三個位置一樣,從結果來看,也是如此。
重新讀取字符串 : 好的
6.重命名文件--rename()方法
Python的os模塊提供了幫你執行文件處理操作的方法,比如重命名和刪除文件。要使用這個模塊,你必須先導入它,然後纔可以調用相關的各種功能。
import os
os.rename("D:/chen_lib工作文檔/works/IM/dict_test.txt", "D:/chen_lib工作文檔/works/IM/dict_test_rename.txt")
可以看到文檔名稱已經改了
7.刪除文件--remove()方法
remove很簡單,和改名稱類似,這裏就不再演示了
os.remove(file_name)
以上就是對文件的各種操作方法~