用python實現讀寫文件常見操作方式


1  文件讀取全文本操作
在一定場景下我們需要把文本全部內容讀取出來,進行處理。python提供三種函數讀取文件,分別是read readline readlines,

read():讀取文件的全部內容,加上參數可以指定讀取的字符。

readline():讀取文件的一行。

readlines():讀取文件的所有行到內存中。

不同場景下我們可以選擇不同函數對文件進行讀取。

1.1  方法一

file_name = input("請輸入你要打開的文件的完整路徑及名稱")
file = open(file_name, "r")
txt = file.read()
# 全文本的處理
file.close()

使用read函數將文件中的內容全部讀取,放在字符串變量txt中。這樣操作適合於文本較小,處理簡單的情況,當文件較大時,這種方式處理時不合適的。一次性讀取較大的文件到內存中,會耗費較多的時間和資源。這時候分批處理效果更好。

1.2  方法二

file_name = input("請輸入你要打開的文件的完整路徑及名稱")
file = open(file_name, "r")
txt = file.read(4)
# 文本的處理
while txt != ""
    txt = file.read(4)
    # 批量文本處理
file.close()

這種方法適合於分批處理文本信息,每次批量讀入,批量處理,不會對內存造成較大的壓力。

1.3  方法三

file_name = input("請輸入你要打開的文件的完整路徑及名稱")
file = open(file_name, "r")
for line in file.readlines():
    # 處理每一行數據
file.close()

這種處理方式適合處理以行為分割特點的文本,並且文本較小,因為這種處理方式需要一次性把文件所有內容讀取到內存中。

1.4  方法四

file_name = input("請輸入你要打開的文件的完整路徑及名稱")
file = open(file_name, "r")  # 這里的file時文件句柄
for line in file:
    # 處理每一行數據
file.close()

這種方式和方法三中的區別是分行讀入,逐行處理,不會一次性把文件所有內容都讀入到內存中,對一些大文件的處理是很有效的。

2  文件寫入文本操作
文件寫入有兩種寫入函數和一種輔助支持。

write():向文件中寫入一個字符或者字節流 

writelines():將一個元素全為字符串的列表寫入到文件中 需要注意的是,writelines寫入列表元素的時候會把列表元素的內容拼接到一起寫入,不會有換行和空格 。

seek(): 輔助寫入函數offset偏移量參數代表含義如下

0 - 文件開頭

1 - 當前位置

2 - 文件結尾

2.1  方法一

file_name = input("output.txt", "w+")
text = "hello world!"
file_name.write(text)
file.close()

2.2  方法二

file_name = input("output.txt", "w+")
list = ["中午","早上","晚上"]
file_name.writelines(list)
for line in file:
    # 讀取寫入的數據,這時候發現是沒有任何內容的
file.close()

我們增加一行代碼就可以讀取到寫入的文件內容,利用seek()函數調整寫操作指針的位置,可以實現寫操作之后的正常讀取。

file_name = input("output.txt", "w+")
list = ["中午","早上","晚上"]
file_name.readlines(list)
file_name.seek(0) # 調整寫的指針到文件的開始位置
for line in file:
    # 讀取寫入的數據,這時候會讀出一行寫入的數據。
file.close()

 

 

原文鏈接:https://blog.csdn.net/qq_43279637/article/details/106781611


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM