Python檔案處理

2022-09-15 15:33:14 字數 2489 閱讀 6087

#

1. 開啟檔案,得到檔案控制代碼並賦值給乙個變數

f=open('

aaa.txt

',encoding='

utf-8

') #

預設開啟模式就為rt(唯讀文字)

#2. 通過控制代碼對檔案進行操作

data=f.read()

#3. 關閉檔案

f.close()

#

1. 開啟檔案的模式有(預設為文字模式):

r ,唯讀模式【預設模式,檔案必須存在,不存在則丟擲異常】

w,只寫模式【不可讀;不存在則建立;存在則清空內容】

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

#rb

wbab

注:以b方式開啟時,讀取到的內容是位元組型別,寫入時也需要提供位元組型別,不能指定編碼

#3. 了解部分"+

"表示可以同時讀寫某個檔案

r+, 讀寫【可讀,可寫】

w+,寫讀【可讀,可寫】

a+, 寫讀【可讀,可寫】

x, 只寫模式【不可讀;不存在則建立,存在則報錯】

x+,寫讀【可讀,可寫】

xb

#

掌握f.read() #

讀取所有內容,游標移動到檔案末尾

f.readline() #

讀取一行內容,游標移動到第二行首部

f.readlines() #

讀取每一行內容,存放於列表中

f.write(

'1111\n222\n

') #

針對文字模式的寫,需要自己寫換行符

f.write('

1111\n222\n

'.encode('

utf-8

')) #

針對b模式的寫,需要自己寫換行符

f.writelines(['

333\n

','444\n

']) #

檔案模式

f.writelines([bytes('

333\n

',encoding='

utf-8

'),'

444\n

'.encode('

utf-8

')]) #

b模式#

了解f.readable() #

檔案是否可讀

f.writable() #

檔案是否可讀

f.closed #

檔案是否關閉

f.encoding #

如果檔案開啟模式為b,則沒有該屬性

f.flush() #

立刻將檔案內容從記憶體刷到硬碟

f.name

其他掌握:

#f=open('b.txt','r',encoding='utf-8',newline='') #讀取檔案中真正的換行符號

#f.flush() #將檔案內容從記憶體刷到硬碟

#f.closed #檔案如果關閉則返回true

#f.encoding #檢視使用open開啟檔案的編碼

以下為檔案的游標移動:

# f.isatty #檢視是否是終端裝置

# f.name #檢視檔名

#f.tell() #檢視檔案處理當前的游標位置(位元組)

#f.seek(3,0) #用來控制游標的移動,從開頭開始算(模式0),將游標移動到第三個位元組;

#seek有三種移動模式0,1,2,其中1和2必須在b模式下進行,但無論哪種模式,都是以bytes為單位移動的

#模式1是相對於之前游標位置移動,模式2是倒著移動,如果使用模式2則位置必須為負數。

#f.truncate(10) #從開頭開始算,將檔案只保留從0-10個位元組的內容,檔案必須以寫方式開啟,但是w和w+除外

#truncate是截斷檔案,所以檔案的開啟方式必須可寫,但是不能用w或w+等方式開啟,因為那樣直接清空檔案了,所以truncate要在r+或a或a+等模式下測試效果

# f.read(3) #檔案開啟方式為文字模式時,代表讀取3個字元;檔案開啟方式為b模式時,代表讀取3個位元組;

需求:列印出日誌檔案中的最後一行日誌。

f = open('

日誌檔案

','rb')

for i in

f: #此處迴圈日誌檔案的時候之所以迴圈控制代碼,就是因為這樣可以防止將所有日誌檔案內容都讀取到記憶體中,白白浪費記憶體資源。

offs=-10

while

true:

f.seek(offs,2)

data=f.readlines()

if len(data) > 1:

print('

檔案的最後一行是: %s

' %(data[-1].decode('

utf-8

')))

break

offs*=2

python檔案處理

def cal input input.txt output output.txt cal方法為主程式,推薦這樣做而不是python.exe xx.py 預設引數為python目錄的兩個txt,如為其他檔案自己指定。infile file input,r 開啟源資料檔案 outfile file o...

python 檔案處理

1.開啟檔案 open a.txt 當前目錄下的a.txt open root a.txt 開啟某個目錄下的檔案 2.按行顯示檔案 a open a.txt a.readline ni hao n a.readline wo xianzai hen xiang ni n a.readline ni ...

Python檔案處理

open name mode buf read size readline size readlines size 這裡的size是指,io定義的default buffer size為單位大小 iter 迭代器迭代每行 write str writelines sequwence of strin...