Python文件讀寫處理日常任務(wù)終極工具實(shí)例
文件的打開和關(guān)閉
在進(jìn)行文件操作之前,首先需要打開文件。Python使用內(nèi)置的open()
函數(shù)來實(shí)現(xiàn)這一點(diǎn)。
open()
函數(shù)需要兩個(gè)參數(shù):文件名和打開模式。模式通常包括:
'r'
:只讀模式,用于讀取文件內(nèi)容。'w'
:寫入模式,用于創(chuàng)建新文件或覆蓋已存在的文件。'a'
:追加模式,用于在文件末尾添加新數(shù)據(jù)。'b'
:二進(jìn)制模式,用于處理二進(jìn)制文件(如圖像、音頻等)。'x'
:創(chuàng)建模式,用于創(chuàng)建新文件,如果文件已存在,則會(huì)引發(fā)錯(cuò)誤。
# 打開一個(gè)文本文件以供讀取 file = open('example.txt', 'r') # 打開一個(gè)文本文件以供寫入(如果文件不存在則創(chuàng)建) file = open('output.txt', 'w') # 打開一個(gè)二進(jìn)制文件以供讀取 file = open('binary_data.bin', 'rb') # 打開一個(gè)二進(jìn)制文件以供寫入 file = open('output.bin', 'wb')
重要提示: 打開文件后,務(wù)必使用close()
方法關(guān)閉文件,以釋放資源。不關(guān)閉文件可能會(huì)導(dǎo)致資源泄漏和其他問題。
file = open('example.txt', 'r') # 文件操作 file.close() # 關(guān)閉文件
為了避免忘記關(guān)閉文件,可以使用with
語(yǔ)句,它會(huì)在退出with
塊時(shí)自動(dòng)關(guān)閉文件。
with open('example.txt', 'r') as file: # 文件操作 # 文件已在此處自動(dòng)關(guān)閉
讀取文件內(nèi)容
Python提供了多種方法來讀取文件的內(nèi)容,具體取決于需求和文件的格式。
以下是一些常見的讀取文件內(nèi)容的方法:
1. read()
read()
方法用于讀取整個(gè)文件的內(nèi)容,并將其作為一個(gè)字符串返回。
file = open('example.txt', 'r') content = file.read() file.close()
2. readline()
readline()
方法用于逐行讀取文件的內(nèi)容。每次調(diào)用readline()
會(huì)返回文件的下一行。
file = open('example.txt', 'r') line1 = file.readline() line2 = file.readline() file.close()
3. readlines()
readlines()
方法將文件的所有行讀取為一個(gè)列表,每一行都是列表中的一個(gè)元素。
file = open('example.txt', 'r') lines = file.readlines() file.close()
寫入文件內(nèi)容
與讀取文件一樣,Python也提供了多種方法來寫入文件內(nèi)容。
以下是一些常見的寫入文件內(nèi)容的方法:
1. write()
write()
方法用于將文本數(shù)據(jù)寫入文件。如果文件不存在,則會(huì)創(chuàng)建文件;如果文件已存在,將會(huì)覆蓋文件中的數(shù)據(jù)。
file = open('output.txt', 'w') file.write('Hello, world!\n') file.write('This is a new line.') file.close()
2. writelines()
writelines()
方法將字符串列表寫入文件,每個(gè)字符串成為文件的一行。
lines = ['Line 1\n', 'Line 2\n', 'Line 3\n'] file = open('output.txt', 'w') file.writelines(lines) file.close()
異常處理
在進(jìn)行文件操作時(shí),可能會(huì)出現(xiàn)各種異常,如文件不存在、權(quán)限問題等。因此,最好是使用try
和except
塊來處理這些異常,以確保程序的穩(wěn)定性。
try: file = open('example.txt', 'r') # 文件操作 except FileNotFoundError: print("File not found") except PermissionError: print("Permission denied") finally: file.close() # 確保文件在最后被關(guān)閉
二進(jìn)制文件操作
除了文本文件,Python也支持二進(jìn)制文件的讀寫操作,只需使用相應(yīng)的模式('rb'用于讀取二進(jìn)制文件,'wb'用于寫入二進(jìn)制文件)即可。二進(jìn)制文件可以包括圖像、音頻、視頻等。
# 讀取二進(jìn)制文件 with open('binary_data.bin', 'rb') as binary_file: data = binary_file.read() # 寫入二進(jìn)制文件 with open('output.bin', 'wb') as binary_output: binary_output.write(data)
總結(jié)
文件操作是Python編程中常見且重要的任務(wù)之一。了解如何正確地打開、讀取和寫入文件,以及如何處理可能出現(xiàn)的異常,對(duì)于編寫Python程序至關(guān)重要。
無論是讀取文本文件還是處理二進(jìn)制數(shù)據(jù),Python都提供了靈活且強(qiáng)大的工具來滿足需求,你學(xué)會(huì)了嗎?更多關(guān)于Python文件讀寫的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解決使用export_graphviz可視化樹報(bào)錯(cuò)的問題
今天小編就為大家分享一篇解決使用export_graphviz可視化樹報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08Python實(shí)現(xiàn)判斷一行代碼是否為注釋的方法
今天小編就為大家分享一篇Python實(shí)現(xiàn)判斷一行代碼是否為注釋的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05基于Python實(shí)現(xiàn)層次性數(shù)據(jù)和閉包性質(zhì)
這篇文章主要介紹了如何利用Python實(shí)現(xiàn)層次性數(shù)據(jù)和閉包性質(zhì),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以了解一下2022-05-05Scala中使用Jsoup庫(kù)處理HTML文檔的案例分析
Scala是一種多范式的編程語(yǔ)言,具有函數(shù)式編程和面向?qū)ο缶幊痰奶攸c(diǎn),同時(shí)也能夠與Java語(yǔ)言完美兼容,它擁有強(qiáng)大的類型推斷、高階函數(shù)、模式匹配等特性,使得代碼更加簡(jiǎn)潔、靈活和易于維護(hù),這篇文章主要介紹了Scala中使用Jsoup庫(kù)處理HTML文檔的案例分析,需要的朋友可以參考下2024-04-04python語(yǔ)言開發(fā)垃圾回收機(jī)制原理教程
這篇文章主要為大家介紹了python語(yǔ)言開發(fā)垃圾回收機(jī)制原理的教程有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11Python獲取Linux系統(tǒng)下的本機(jī)IP地址代碼分享
這篇文章主要介紹了Python獲取Linux系統(tǒng)下的本機(jī)IP地址代碼分享,本文直接給出實(shí)現(xiàn)代碼,可以獲取到eth0等網(wǎng)卡的IP地址,需要的朋友可以參考下2014-11-11Python利用py-redis實(shí)現(xiàn)分布式鎖
隨著業(yè)務(wù)的增長(zhǎng),后端技術(shù)架構(gòu)會(huì)慢慢的從單體服務(wù)轉(zhuǎn)向多服務(wù)或者微服務(wù)的分布式架構(gòu),本文主要為大家介紹了如何利用Py-Redis實(shí)現(xiàn)簡(jiǎn)單的分布式鎖,需要的可以參考一下2023-08-08Python實(shí)現(xiàn)清理重復(fù)文件功能的示例代碼
在電腦上或多或少的存在一些重復(fù)文件,體積小的倒沒什么,如果體積大的就很占內(nèi)存了。本文用python制作了一個(gè)刪除重復(fù)文件的小工具,核心代碼很簡(jiǎn)單,希望對(duì)你有所幫助2022-07-07Python設(shè)計(jì)模式之代理模式實(shí)例
這篇文章主要介紹了設(shè)計(jì)模式中的代理模式Python實(shí)例,需要的朋友可以參考下2014-04-04