python中檔案的讀和寫操作

2022-10-11 07:45:08 字數 2325 閱讀 6441

一、開啟檔案

data = open("yesterday",encoding="utf-8").read()

# python預設的打字元編碼是unicode,處理不了gbk,但是utf—8可以

print(data)

ps:這邊的yesterday檔案是一首英文歌的歌詞

在開啟的時候,一定要轉碼,否則會亂碼:encoding="utf-8"

二、讀取前幾行

會用到read( )和readline( )方法

f = open("yesterday",encoding="utf-8")  # 檔案控制代碼,方法和1類似

# data = f.read() # 游標在最後面

# print(data)

# f.readline() # 讀取一行,只適合讀小檔案

for i in range(5):

print(f.readline()) # 迴圈之後讀取四行

三、讀取前幾行(優化版)

用到了迭代器,所以不會像二一樣占用太大的記憶體,最後只會占用一行的記憶體

f = open("yesterday",encoding="utf-8")

# 實現前九行的輸入,並且在第九行輸入分割線

count = 0

for line in f:

if count == 9:

print("--------分割線-------")

count += 1

continue

print(line) # 迭代器!效率最高的迴圈方式,比2效率高是因為讀完一行就刪一行

四、關於檔案的方法

python不是直接呼叫所有檔案,而是呼叫作業系統的介面i/o,通過介面來呼叫檔案

# 1.tell()方法:游標的位置

f = open("yesterday",encoding="utf-8")

print("1:",f.tell()) # 把指標的位置表示出來,0

print("2:",f.readline())

print("3:",f.tell()) # 讀完一行字元之後游標的位置

print("4:",f.readline(3))

print("5:",f.tell()) # 讀完三行字元之後游標的位置

#2.seek()方法: 游標回到第幾行

f.seek(0)

print("6:",f.tell()) # 游標重新回到了開始

# 3.encoding # 列印檔案的編碼型別

print("7:",f.encoding)

# 4.fileno() 可用於底層作業系統的 i/o介面操作。

print("8:",f.fileno())

# 5.flush()

print(f.flush()) # 實時重新整理檔案內容

其實在學習python基礎的時候,pycharm的聯想功能非常重要!

開啟檔案的模式有:

r,唯讀模式(預設)。

w,只寫模式。【不可讀;不存在則建立;存在則刪除內容;】

a,追加模式。【可讀; 不存在則建立;存在則只追加內容;】

「+」 表示可以同時讀寫某個檔案

r+,可讀寫檔案。【可讀;可寫;可追加】

w+,寫讀

a+,同a

"u"表示在讀取時,可以將 \r \n \r\n自動轉換成 \n (與 r 或 r+ 模式同使用)

rur+u

rb —讀,以二進位制模式開啟,此時不需要即encoding,

wb—寫,此時需要加入encoding

ab

python 檔案操作,讀檔案,寫檔案

讀取檔案的全部內容 def get f none try f open 致橡樹.txt r encoding utf 8 print f.read except filenotfounderror print 無法開啟指定的檔案 except lookuperror print 指定了未知的編碼 e...

Python讀檔案 寫檔案

讀檔案 在相應的資料夾下建立乙個list.txt檔案。建立乙個包含檔案各行內容的列表 將要讀取的檔案的名稱儲存在變數filename中 filename list.txt with open filename as file obj 呼叫open 將乙個表示檔案及其內容的物件儲存到了變數file o...

C語言操作檔案讀和寫

r 唯讀 讀模式 開啟檔案,從檔案頭開始讀。r 唯讀 讀寫模式 開啟檔案,從檔案頭開始讀寫。w 只寫 寫模式 開啟檔案,從檔案頭開始讀。如果該檔案已經存在,將刪除所有檔案已有內容。如果該文 件不存在,函式將建立這個檔案。w 只寫 寫模式 開啟檔案,從檔案頭開始讀寫。如果該檔案已經存在,將刪除所有檔案...