1、python文件緩衝區
f = open('test', 'w', 1) # 第三個參數爲1表示行緩衝,默認值爲-1
while True:
data = input('>>>')
if not data:
break
f.write(data)
f.flush() # 立即刷新緩衝,寫入磁盤
f.close() # 文件結束刷新緩衝區
2、python文件偏移量
定義:打開一個文件進行操作時系統會自動生成一個記錄,記錄中描述了我們對文件的一系列操作。其中包括每次操作到的文件位置。文件的讀寫操作都是從這個位置開始進行的。
"""
seek.py 文件偏移量演示
seek(offset[,whence]) offset表示相對於某個位置移動的字節數。負數表示向前移動,正數表示向後移動
whence是基準位置的默認值爲 0,代表從文件開頭算起,1代表從當前位置算起,2 代表從文件末尾算起。
r w open 打開文件偏移量在開頭
a 打開文件偏移量在結尾
通常以二進制方式打開操作文件偏移量
"""
f = open('test', 'wb+')
f.write(b'Hello World')
f.flush()
# print('文件偏移量:{0}'.format(f.tell()))
print('文件偏移量:%s' % (f.tell()))
# 操作文件偏移量
f.seek(5, 0)
data = f.read()
print(data)
f.close()
3、文件讀寫操作
file_object = open(file_name, access_mode=‘r’, buffering=-1)
功能:打開一個文件,返回一個文件對象。
參數:file_name 文件名;
access_mode 打開文件的方式,如果不寫默認爲‘r’
文件模式 操作
r 以讀方式打開 文件必須存在
w 以寫方式打開
文件不存在則創建,存在清空原有內容
a 以追加模式打開
r+ 以讀寫模式打開 文件必須存在
w+ 以讀寫模式打開文件
不存在則創建,存在清空原有內容
a+ 以讀寫模式打開 追加模式
rb 以二進制讀模式打開 同r
wb 以二進制寫模式打開 同w
ab 以二進制追加模式打開 同a
rb+ 以二進制讀寫模式打開 同r+
wb+ 以二進制讀寫模式打開 同w+
ab+ 以二進制讀寫模式打開 同a+
buffering 1表示有行緩衝,默認則表示使用系統默認提供的緩衝機制。
返回值:成功返回文件操作對象。
-
讀文件操作函數
read([size])
功能: 來直接讀取文件中字符
size:讀取字節數
返回值: 返回讀取到的內容readline([size])
功能: 用來讀取文件中一行
size:默認-1,讀取一行,給定數值表示讀取字節數
返回值: 返回讀取到的內容readlines([sizeint])
功能: 讀取文件中的每一行作爲列表中的一項
size:默認-1,讀取所有,給定數值表示讀取字節數
返回值: 返回讀取到的內容列表 -
寫操作函數
write(string)
功能: 把文本數據或二進制數據塊的字符串寫入到文件中去
參數:要寫入的內容
返回值:寫入的字符個數writelines(str_list)
功能:接受一個字符串列表作爲參數,將它們寫入文件。
參數: 要寫入的內容列表 -
關閉文件操作
file_object.close() -
常見文件操作函數
1、獲取文件大小 os.path.getsize(file)
2、查看文件列表 os.listdir(dir)
3、查看文件是否存在 os.path.exists(file)
4、判斷文件類型 os.path.isfile(file)
5、刪除文件 os.remove(file)
4、文件操作練習
"""
輸入要複製的文件路徑,將文件複製到另外一個文件目錄下
"""
filename = input('File:') # 輸入文件名
try:
fr = open(filename, 'rb') # 二進制打開文件
except FileExistsError as e:
print(e)
else:
fw = open('/home/xiaohuo/PycharmProjects' + filename.split('/')[-1], 'wb') # 打開文件
while True:
data = fr.read(1024) # 讀取文件
if not data:
break
else:
fw.write(data)
fr.close()