#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...