1. 程式人生 > >python_檔案操作學習01

python_檔案操作學習01

1.檔案的開啟與關閉

<1>檔案的開啟

在python,使用open函式,可以開啟一個已經存在的檔案,或者建立一個新檔案

open(檔名,訪問模式)

f = open('test.txt', 'w')

訪問模式:

 

r 以只讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。
w 開啟一個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。
a 開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。
rb 以二進位制格式開啟一個檔案用於只讀。檔案指標將會放在檔案的開頭。這是預設模式。
wb 以二進位制格式開啟一個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。
ab 以二進位制格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。
r+ 開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。
w+ 開啟一個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。
a+ 開啟一個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。
rb+ 以二進位制格式開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。
wb+ 以二進位制格式開啟一個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。
ab+

以二進位制格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。

<2>關閉檔案

close()

# 新建一個檔案,檔名為:test.txt
    f = open('test.txt', 'w')

    # 關閉這個檔案
    f.close()

 2.檔案的讀寫

<1>寫資料(write)

使用write()可以完成向檔案寫入資料

f = open('test.txt', 'w')
f.write('hello world, i am here!')
f.close()

 

  • 如果檔案不存在那麼建立,如果存在那麼就先清空,然後寫入資料 
  • f = open('test.txt', 'r')
    
    content = f.read(5)
    
    print(content)
    
    print("-"*30)
    
    content = f.read()
    
    print(content)
    
    f.close()
  • 如果open是開啟一個檔案,那麼可以不用謝開啟的模式,即只寫 open('test.txt')
  • 如果使用讀了多次,那麼後面讀取的資料是從上次讀完後的位置開始
  • <3>讀資料(readlines) 
  • 就像read沒有引數時一樣,readlines可以按照行的方式把整個檔案中的內容進行一次性讀取,並且返回的是一個列表,其中每一行的資料為一個元素
  • content = f.readlines()
    

  <4>讀資料(readline)

content = f.readline()
print("1:%s"%content)

 輸出:1:hello world,i am here!

<5>獲取當前讀寫的位置

在讀寫檔案的過程中,如果想知道當前的位置,可以使用tell()來獲取

# 查詢當前位置
    position = f.tell()
    print "當前檔案位置 : ", position

 <6>定位到某個位置

如果在讀寫檔案的過程中,需要從另外一個位置進行操作的話,可以使用seek()

seek(offset, from)有2個引數

  • offset:偏移量
  • from:方向
    • 0:表示檔案開頭
    • 1:表示當前位置
    • 2:表示檔案末尾

demo:把位置設定為:從檔案開頭,偏移5個位元組

# 查詢當前位置
    position = f.tell()
    print "當前檔案位置 : ", position

    # 重新設定位置
    f.seek(5,0)

    # 查詢當前位置
    position = f.tell()
    print "當前檔案位置 : ", position

 demo:把位置設定為:離檔案末尾,3位元組處

 # 開啟一個已經存在的檔案
    f = open("test.txt", "r")

    # 查詢當前位置
    position = f.tell()
    print "當前檔案位置 : ", position

    # 重新設定位置
    f.seek(-3,2)

    # 讀取到的資料為:檔案最後3個位元組資料
    str = f.read()
    print "讀取的資料是 : ", str

    f.close()

 檔案的重新命名、刪除

<7>檔案重新命名

os模組中的rename()可以完成對檔案的重新命名操作

rename(需要修改的檔名, 新的檔名)

import os

    os.rename("畢業論文.txt", "畢業論文-最終版.txt")

 <8>刪除檔案

os模組中的remove()可以完成對檔案的刪除操作

remove(待刪除的檔名)  

 

import os

os.mkdir("saaaa")

<9>獲取當前目錄

os.getcwd()

<10>改變預設目錄

os.chdir("../")

<11>獲取目錄列表

os.listdir("./")

<12>刪除資料夾

os.rmdir("aaa")