天天看點

Python中的檔案讀寫與管理01.打開檔案的三個步驟02.檔案的讀寫各種方法03.檔案打開後的指針04.檔案的讀取操作05.上下文管理器

01.打開檔案的三個步驟

打開 --> 操作 --> 關閉

打開檔案

f = open('/tmp/passwd')
           

讀操作

content = f.read()      ##定義content為所讀的東西
print(content)          ##将讀到的東西列印出來
print(f.writable())     ##列印檔案的可寫性
print(f.readable())     ##列印檔案的可讀性
           

寫操作

f.write('hello')
           

關閉

f.close()
           
Python中的檔案讀寫與管理01.打開檔案的三個步驟02.檔案的讀寫各種方法03.檔案打開後的指針04.檔案的讀取操作05.上下文管理器

預設是不可寫的,隻是可讀

02.檔案的讀寫各種方法

r:(預設)

-隻能讀,不能寫

-讀取的檔案不存在,會報錯

r+:

-可以執行讀寫操作

-檔案不存在,報錯

-預設情況下,從檔案指針所在位置開始寫入

w:

-write only

-會清空檔案之前的内容

-檔案不存在,不會報錯,會建立新的檔案并寫入

w+:

-rw

-會清空檔案内容

-檔案不存在,不報錯,會建立新的檔案

a:

-write only

-不會清空檔案内容

-檔案不存在,會報錯

a+:

-rw

-不清空檔案内容,在末尾追加

-檔案不存在,不報錯

03.檔案打開後的指針

f = open('/tmp/passwd','r+')
print(f.tell())		#檢視目前指針所在的位置
f.write('python')

print(f.tell())
content = f.read()
print(content)

f.close()
           
Python中的檔案讀寫與管理01.打開檔案的三個步驟02.檔案的讀寫各種方法03.檔案打開後的指針04.檔案的讀取操作05.上下文管理器

檔案的讀取是從指針開始的,當檔案内寫入東西後,預設從指針初始位置開始寫,寫完後指針來到寫入的東西之後,這時候直接讀是讀不到的。

04.檔案的讀取操作

f = open('/tmp/passwd','rb+')

print(f.read())
print(f.readline())
print(f.readlines())
           
Python中的檔案讀寫與管理01.打開檔案的三個步驟02.檔案的讀寫各種方法03.檔案打開後的指針04.檔案的讀取操作05.上下文管理器
  • readlines():讀取檔案内容,傳回一個清單,清單的元素分别為檔案

    行内容

f = open('/tmp/passwd','rb+')
print(f.read(4))
print(f.readline(),end='')
print(f.readlines(),end='')

f.close()
           
Python中的檔案讀寫與管理01.打開檔案的三個步驟02.檔案的讀寫各種方法03.檔案打開後的指針04.檔案的讀取操作05.上下文管理器
  • 預設情況下讀取檔案的所有内容,小檔案可以直接用read讀取,如果

    是大檔案(檔案大小>記憶體大小),不能通過read一次性讀取所有内容

檔案的寫入操作

f.write('hello')
f.writelines(['a','b']) #将清單裡的每個元素寫入檔案
           

移動檔案指針

f.seek(-1,2)
print(f.read())
print(f.tell())
f.close()
           

seek方法,移動指針

seek的第一個參數是偏移量:>0,表示向右移動,<0表示向左移動

seek的第二個參數是:

0:移動指針到檔案開頭

1:不移動指針

2:移動指針到末尾

讀取文本檔案:

r r+ w w+ a a+

讀取二進制檔案:

rb rb+ wb wb+ ab ab+

f = open('QR.png',mode='rb')
content = f.read()
f.close()
           

05.上下文管理器

#同時打開兩個檔案
with open('/tmp/passwd') as f1,\
    open('/tmp/passwd1','w+') as f2:
    #将第一個檔案的内容寫入第二個檔案中
    f2.write(f1.read())
    #移動指針到檔案最開始
    f2.seek(0)
    #讀取檔案内容
    print(f2.read())
           
Python中的檔案讀寫與管理01.打開檔案的三個步驟02.檔案的讀寫各種方法03.檔案打開後的指針04.檔案的讀取操作05.上下文管理器