Python提供了強大的文件讀寫功能,通過內置的open()
函數,你可以輕鬆地對文件進行讀取和寫入操作。Python支持各種文件類型,如文本文件和二進制文件。
Python使用open()
函數來打開文件,並返回一個文件對象。基本語法如下:
file_object = open(file_name, mode)
其中:
file_name
是文件的名稱或路徑。mode
是文件打開的模式,常用的模式如下:
'r'
:讀取模式(默認)。如果文件不存在,則會報錯。'w'
:寫入模式。如果文件已存在,會覆蓋文件。如果文件不存在,則創建新文件。'a'
:追加模式。在文件末尾追加內容。如果文件不存在,則創建新文件。'b'
:二進制模式(與其他模式結合使用,如 'rb' 讀取二進制文件)。't'
:文本模式(默認,可省略)。Python 提供了多種方法來讀取文件內容。
read()
:讀取整個文件內容# 打開文件並讀取其全部內容
with open('example.txt', 'r') as file:
content = file.read()
print(content)
readline()
:按行讀取文件# 使用 readline() 方法按行讀取
with open('example.txt', 'r') as file:
line = file.readline()
while line:
print(line.strip()) # 移除換行符號
line = file.readline()
readlines()
:將所有行讀入列表# 使用 readlines() 方法讀取所有行並返回列表
with open('example.txt', 'r') as file:
lines = file.readlines()
for line in lines:
print(line.strip()) # 移除換行符號
使用'w'
模式打開文件時,可以將內容寫入文件。如果文件已存在,會覆蓋文件。
write()
:寫入字符串到文件# 打開文件並寫入內容
with open('example.txt', 'w') as file:
file.write("Hello, World!\n")
file.write("Python 文件寫入範例。\n")
writelines()
:將列表中的每個元素作為一行寫入文件# 使用 writelines() 寫入多行
lines = ["第一行\n", "第二行\n", "第三行\n"]
with open('example.txt', 'w') as file:
file.writelines(lines)
使用'a'
模式打開文件,可以在文件末尾追加內容,而不覆蓋原有內容。
# 追加內容到文件末尾
with open('example.txt', 'a') as file:
file.write("這是追加的內容。\n")
使用open()
打開的文件需要在使用後關閉,否則可能會造成資源泄漏。你可以使用close()
方法手動關閉文件:
file = open('example.txt', 'r')
# 執行文件操作
file.close()
然而,推薦的做法是使用with
語句,這樣會自動處理文件的關閉,避免忘記close()
文件。
with open('example.txt', 'r') as file:
content = file.read()
print(content)
# 此處文件已自動關閉
對於二進制文件(如圖片、音頻等),需要使用 'b' 模式來讀寫二進制數據。
# 以二進制模式打開並讀取文件
with open('image.jpg', 'rb') as file:
binary_data = file.read()
print(binary_data)
# 以二進制模式打開並寫入文件
with open('output_image.jpg', 'wb') as file:
file.write(binary_data)
seek(offset, whence)
:移動文件指針到指定位置。offset
:偏移量,表示要移動的字節數。whence
:起始位置,默認為0
(文件開頭),可以是:
0
:文件開頭。1
:當前指針位置。2
:文件末尾。# 移動文件指針到開頭,然後讀取文件
with open('example.txt', 'r') as file:
file.seek(0)
print(file.read())
tell()
:返回當前文件指針的位置。
# 獲取當前文件指針的位置
with open('example.txt', 'r') as file:
print(file.tell())
Python的os
模塊提供了文件檢查與操作的功能,如創建、刪除文件或目錄,判斷文件是否存在等。
import os
# 檢查文件是否存在
if os.path.exists('example.txt'):
print("文件存在")
else:
print("文件不存在")
# 刪除文件
os.remove('example.txt')