Python文本與二進(jìn)制文件讀寫(xiě)操作指南
引言
文件讀寫(xiě)是編程中的常見(jiàn)操作,Python提供了簡(jiǎn)潔且強(qiáng)大的文件操作接口。本文將詳細(xì)介紹Python中文本文件和二進(jìn)制文件的讀寫(xiě)操作,包括文件打開(kāi)、讀取、寫(xiě)入、關(guān)閉及異常處理等內(nèi)容,并通過(guò)具體示例代碼展示如何高效地處理文件。
文件的基本操作
打開(kāi)文件
在Python中,使用open函數(shù)打開(kāi)文件。open函數(shù)的基本語(yǔ)法如下:
open(filename, mode, encoding=None)
filename:要打開(kāi)的文件名。mode:文件打開(kāi)模式,如'r'(讀?。?、'w'(寫(xiě)入)、'a'(追加)等。encoding:文本文件的編碼方式,通常使用'utf-8'。
文件模式
常見(jiàn)的文件打開(kāi)模式包括:
'r':只讀模式(默認(rèn))。'w':寫(xiě)入模式,會(huì)覆蓋文件內(nèi)容。'a':追加模式,在文件末尾添加內(nèi)容。'b':二進(jìn)制模式。'+':讀寫(xiě)模式。
文本文件處理
讀取文本文件
逐行讀取
使用readline方法逐行讀取文件內(nèi)容:
with open('example.txt', 'r', encoding='utf-8') as file:
line = file.readline()
while line:
print(line.strip())
line = file.readline()
讀取整個(gè)文件
使用read方法一次性讀取整個(gè)文件內(nèi)容:
with open('example.txt', 'r', encoding='utf-8') as file:
content = file.read()
print(content)
讀取文件的所有行
使用readlines方法讀取文件的所有行,并返回一個(gè)列表:
with open('example.txt', 'r', encoding='utf-8') as file:
lines = file.readlines()
for line in lines:
print(line.strip())
寫(xiě)入文本文件
使用write方法寫(xiě)入文本文件:
with open('output.txt', 'w', encoding='utf-8') as file:
file.write('這是第一行文本。\n')
file.write('這是第二行文本。')
追加文本文件
使用append模式在文件末尾追加內(nèi)容:
with open('output.txt', 'a', encoding='utf-8') as file:
file.write('\n這是追加的一行文本。')
二進(jìn)制文件處理
讀取二進(jìn)制文件
使用rb模式讀取二進(jìn)制文件:
with open('example.bin', 'rb') as file:
content = file.read()
print(content)
寫(xiě)入二進(jìn)制文件
使用wb模式寫(xiě)入二進(jìn)制文件:
with open('output.bin', 'wb') as file:
file.write(b'This is a binary file.')
異常處理
在文件操作過(guò)程中,可能會(huì)遇到一些異常情況,如文件不存在、沒(méi)有權(quán)限等??梢允褂?code>try-except語(yǔ)句進(jìn)行異常處理:
try:
with open('nonexistent.txt', 'r', encoding='utf-8') as file:
content = file.read()
except FileNotFoundError:
print('文件未找到。')
except PermissionError:
print('沒(méi)有權(quán)限讀取文件。')
實(shí)際應(yīng)用示例
復(fù)制文本文件
def copy_text_file(source, destination):
try:
with open(source, 'r', encoding='utf-8') as src_file:
content = src_file.read()
with open(destination, 'w', encoding='utf-8') as dest_file:
dest_file.write(content)
print(f'文件已成功復(fù)制到 {destination}')
except Exception as e:
print(f'復(fù)制文件時(shí)出錯(cuò): {e}')
copy_text_file('example.txt', 'example_copy.txt')
復(fù)制二進(jìn)制文件
def copy_binary_file(source, destination):
try:
with open(source, 'rb') as src_file:
content = src_file.read()
with open(destination, 'wb') as dest_file:
dest_file.write(content)
print(f'文件已成功復(fù)制到 {destination}')
except Exception as e:
print(f'復(fù)制文件時(shí)出錯(cuò): {e}')
copy_binary_file('example.bin', 'example_copy.bin')
統(tǒng)計(jì)文本文件的行數(shù)、單詞數(shù)和字符數(shù)
def file_statistics(filename):
try:
with open(filename, 'r', encoding='utf-8') as file:
lines = file.readlines()
line_count = len(lines)
word_count = sum(len(line.split()) for line in lines)
char_count = sum(len(line) for line in lines)
print(f'行數(shù): {line_count}, 單詞數(shù): {word_count}, 字符數(shù): {char_count}')
except Exception as e:
print(f'統(tǒng)計(jì)文件時(shí)出錯(cuò): {e}')
file_statistics('example.txt')
使用JSON文件
JSON是一種常用的輕量級(jí)數(shù)據(jù)交換格式。在Python中,可以使用json模塊讀寫(xiě)JSON文件。
讀取JSON文件
import json
def read_json(filename):
try:
with open(filename, 'r', encoding='utf-8') as file:
data = json.load(file)
return data
except Exception as e:
print(f'讀取JSON文件時(shí)出錯(cuò): {e}')
return None
data = read_json('data.json')
print(data)
寫(xiě)入JSON文件
import json
def write_json(data, filename):
try:
with open(filename, 'w', encoding='utf-8') as file:
json.dump(data, file, ensure_ascii=False, indent=4)
print(f'數(shù)據(jù)已寫(xiě)入到 {filename}')
except Exception as e:
print(f'寫(xiě)入JSON文件時(shí)出錯(cuò): {e}')
data = {'name': 'Alice', 'age': 25, 'city': 'New York'}
write_json(data, 'data.json')
總結(jié)
本文詳細(xì)介紹了Python中文本文件和二進(jìn)制文件的讀寫(xiě)操作,包括文件的打開(kāi)、讀取、寫(xiě)入、追加和關(guān)閉等基本操作,同時(shí)講解了如何進(jìn)行異常處理。通過(guò)具體的示例代碼,展示了如何高效地處理文件,例如逐行讀取文件、寫(xiě)入文件、復(fù)制文件、統(tǒng)計(jì)文件信息以及處理JSON文件等實(shí)際應(yīng)用場(chǎng)景。掌握這些文件操作技巧,能夠幫助大家在Python編程中更加靈活地處理各種文件,提高代碼的可讀性和可維護(hù)性。
以上就是Python文本與二進(jìn)制文件讀寫(xiě)操作指南的詳細(xì)內(nèi)容,更多關(guān)于Python文本與二進(jìn)制文件讀寫(xiě)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- python之json文件讀寫(xiě)操作的四種方法
- 使用Python實(shí)現(xiàn)異步文件讀寫(xiě)功能
- Python文件讀寫(xiě)操作基礎(chǔ)知識(shí)和實(shí)戰(zhàn)應(yīng)用
- Python文件讀寫(xiě)open函數(shù)詳解
- python文件讀寫(xiě)操作小結(jié)
- 使用Python文件讀寫(xiě),自定義分隔符(custom delimiter)
- Python打開(kāi)文件、文件讀寫(xiě)操作、with方式、文件常用函數(shù)實(shí)例分析
- python多線程同步之文件讀寫(xiě)控制
- 專家解析Python文件讀寫(xiě)的理論與實(shí)踐(從基礎(chǔ)概念到工程應(yīng)用)
相關(guān)文章
Python Pygame實(shí)現(xiàn)兔子獵人守護(hù)城堡游戲
這篇文章主要介紹了用python來(lái)制作的一個(gè)守護(hù)類小游戲兔子獵人守護(hù)城堡,文中的示例代碼介紹得很詳細(xì),感興趣的小伙伴快來(lái)跟隨小編一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12
使用Python寫(xiě)一個(gè)創(chuàng)意五子棋游戲源代碼
這篇文章主要給大家介紹了關(guān)于使用Python寫(xiě)一個(gè)創(chuàng)意五子棋游戲的相關(guān)資料,Python作為一種簡(jiǎn)單易上手的編程語(yǔ)言,能夠輕松實(shí)現(xiàn)五子棋游戲,需要的朋友可以參考下2023-08-08
利用 Python ElementTree 生成 xml的實(shí)例
這篇文章主要介紹了利用 Python ElementTree 生成 xml的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
全面了解Python環(huán)境配置及項(xiàng)目建立
下面小編就為大家?guī)?lái)一篇全面了解Python環(huán)境配置及項(xiàng)目建立。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
Python實(shí)現(xiàn)的擬合二元一次函數(shù)功能示例【基于scipy模塊】
這篇文章主要介紹了Python實(shí)現(xiàn)的擬合二元一次函數(shù)功能,結(jié)合實(shí)例形式分析了Python基于scipy模塊進(jìn)行二元一次函數(shù)擬合相關(guān)科學(xué)運(yùn)算操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-05-05
pandas實(shí)現(xiàn)數(shù)據(jù)concat拼接的示例代碼
pandas.concat用于合并DataFrame或Series,本文主要介紹了pandas實(shí)現(xiàn)數(shù)據(jù)concat拼接的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下2025-06-06
mvc框架打造筆記之wsgi協(xié)議的優(yōu)缺點(diǎn)以及接口實(shí)現(xiàn)
這篇文章主要給大家介紹了關(guān)于mvc框架打造筆記之wsgi協(xié)議的優(yōu)缺點(diǎn)以及接口實(shí)現(xiàn)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08
python分布式系統(tǒng)Celery安裝使用實(shí)例講解
這篇文章主要為大家介紹了python分布式系統(tǒng)Celery安裝使用實(shí)例講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12

