python基礎(三)檔案操作和集合

來源:互聯網
上載者:User

標籤:計數器   tab   writable   其他   查看   截斷   高效   唯讀   trunc   

一.檔案操作

對檔案的操作分三步:

        1、開啟檔案擷取檔案的控制代碼,控制代碼就理解為這個檔案

        2、通過檔案控制代碼操作檔案

        3、關閉檔案。

1.檔案基本操作:

  • f = open(‘file.txt‘,‘r‘) #以唯讀方式開啟一個檔案,擷取檔案控制代碼,如果是讀的話,r可以不寫,預設就是唯讀,
  • 在python2中還有file方法可以開啟檔案,python3中file方法已經沒有了,只有open        
  • frist_line = f.readline()#擷取檔案的第一行內容,返回的是一個list
  • print(frist_line)#列印第一行
  • res = f.read()#擷取除了第一行剩下的所有檔案內容,檔案控制代碼發生了變化
  • print(res)
  • f.close()#關閉檔案

2.檔案開啟模式:

    r:唯讀,不加模式預設為r    w:唯寫,[不可讀,不存在則建立,存在則刪除內容]    a:追加,[不可讀,不存在則建立,存在則只追加內容]"+" 表示可以同時讀寫某個檔案    r+ :讀寫--可讀、可寫、可追加,如果開啟的檔案不存在的話,會報錯    w+ :寫讀--先建立檔案,再寫(在原檔案上的修改都是覆蓋操作)    a+ :追加讀--預設開啟控制代碼在末尾,讀取需先seek(0)指定位置,一寫控制代碼就到末尾了    #r和w,seek指定控制代碼可以覆蓋修改,a+指定控制代碼也是追加"U"表示在讀取時,可以將 \r \n \r\n自動轉換成 \n (與 r 或 r+ 模式同使用)    rU    r+U    # windows上分行符號為 \r\n"b"表示處理二進位檔案    rb:二進位檔案讀    wb:二進位檔案寫    ab:追加二進位# 檔案存在硬碟上都是二進位,前邊說encoding=‘utf-8‘是指把二進位轉換成utf-8編碼開啟,# 而“b”是指,不用轉換編碼,我直接讀取二進位

3.檔案操作:

f = open("1.txt", ‘r‘, encoding="utf-8")# encoding="utf-8",utf-8編碼開啟檔案,windows下預設gbk開啟f.readline()            # 讀一行,字串f.readable()            # 判斷檔案是否可讀
f.writable() # 判斷檔案是否可寫
f.encoding() # 列印檔案的編碼
f.read() # 讀取檔案控制代碼到結束所有內容,大檔案時不要用,因為會把檔案內容都讀到記憶體中
f.readlines() # 讀取檔案所有內容,返回一個list,元素是每行的資料,大檔案時不要用f.write("天安門") # 寫入內容,r和w模式,為控制代碼處覆蓋寫入,a模式寫到最後
f.writelines([‘zhangsan‘],[‘李四‘]) #將一個列表寫入檔案中f.flush() # 強制重新整理(預設緩衝區滿了存入磁碟)f.close() # 檔案關閉f.closed() # 判斷檔案是否關閉f.read(5) # 讀取5個字元f.tell() # 查看檔案控制代碼位置。按照字元計數f.seek(0) # 移動檔案控制代碼到第0個字元位置f.encoding # 檔案編碼f.truncate() # 什麼不寫清空檔案f.truncate(10) # r模式截斷出前10個字元,其他模式還是清空

大檔案時,讀取檔案高效的操作方法:
用上面的read()和readlines()方法操作檔案的話,會先把檔案所有內容讀到記憶體中,這樣的話,記憶體資料一多,非常卡,高效的操作,就是讀一行操作一行,讀過的內容就從記憶體中釋放了

f = open(‘file.txt‘)
for line in f: # f 變成了迭代器
  print(line) # 判斷行的話,需自己加個計數器



python基礎(三)檔案操作和集合

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.