Python文件處理

Python文件處理

上一篇文章: Python異常處理
下一篇文章: Python文件夾處理

一、文件的打開與關閉

打開語法:open(文件名,訪問模式)

關閉語法:close()程序員

訪問模式 解釋
r 以只讀方式打開,文件的指針將會放在文件的開頭。這是默認方式。
w 打開一個文件,用於全新寫入。若是文件以存在,將會覆蓋,若是不存在,將會建立。
a 打開一個文件,用於追加。若是文件以及存在,將會把文件指針放到文件末尾,若是不存在,將會新建。
rb 以二進制方式打開一個文件,用於只讀。
wb 以二進制方式打開一個文件,用於全新寫入。若是文件已經存在,將會覆蓋,若是不存在,將會建立。
ab 以二進制方式打開一個文件,用於追加寫入。若是文件存在,將會把文件指針放到文件末尾;若是不存在,將會新建。
r+ 打開一個文件用讀寫,文件指針將會放在文件開頭。
w+ 打開一個文件用於讀寫。若是文件已經存在,則覆蓋,不存在則建立。
a+ 打開一個文件用於追加讀寫。若是文件已經存在,文件指針將會在文件末尾。若是文件不存在,將會建立。
rb+ 以二進制方式打開一個文件用於讀寫,文件指針將放在文件開頭。
wb+ 以二進制方式打開一個文件用於讀寫,若是文件存在將被覆蓋,不存在將會建立。
ab+ 以二進制方式打開一個文件用於讀寫,若是文件存在,文件指針將會在文件末尾,若是文件不存在,將會建立。

實例:segmentfault

#第一次運行將會新建一個文件test.txt
file=open("text.txt","w")

#關閉
file.close()

結果:指針

當前目錄下回出現一個新文件:text.txtcode

二、寫數據

使用write()來寫入數據

實例:rem

#第一次運行將會新建一個文件test.txt
file=open("text.txt","w")
file.write("這麼帥的程序員,人間罕見呀。")
#關閉
file.close()

結果:text.txt文件內容爲:get

這麼帥的程序員,人間罕見呀。

三、讀數據

  • read(num)
read(num):num表示從文件中讀取的長度,單位字節,若是沒有傳num,將會讀取文件的全部內容。

實例:it

text.txt:table

這麼帥的程序員,人間罕見呀。

程序代碼:class

#第一次運行將會新建一個文件test.txt
file=open("text.txt","r")

print(file.read(2))

print(file.read())
#關閉
file.close()

結果:test

這麼
帥的程序員,人間罕見呀。

不難看出:若是讀了屢次,下次讀取是從上次讀取結束位置開始的。

  • readlines
readlines(num):num爲讀取行數,若是不指定,將會返回所有,返回結果是有每行數據做爲每一個元素而組成的列表。

實例:

text.txt:

這麼帥的程序員,人間罕見呀。
如今看到這句話的人是世上最幸運的人,
由於他(她)看到了的最帥的程序員寫的Bug。

程序代碼:

#第一次運行將會新建一個文件test.txt
file=open("text.txt","r")

content=file.readlines()
#type方法用來查看對於數據所屬類型
print(type(content))
print(content)
#關閉
file.close()

結果:

<class 'list'>
['這麼帥的程序員,人間罕見呀。\n', '如今看到這句話的人是世上最幸運的人,\n', '由於他(她)看到了的最帥的程序員寫的Bug。']
  • readline
每次讀取一行

實例:

text.txt:

這麼帥的程序員,人間罕見呀。
如今看到這句話的人是世上最幸運的人,
由於他(她)看到了的最帥的程序員寫的Bug。

程序代碼:

#第一次運行將會新建一個文件test.txt
file=open("text.txt","r")

print(file.readline())
print(file.readline())
print(file.readline())


#關閉
file.close()

結果:(每行後面都有換行符,全部下面結果行數之間會有空格)

這麼帥的程序員,人間罕見呀。

如今看到這句話的人是世上最幸運的人,

由於他(她)看到了的最帥的程序員寫的Bug。

五、獲取當前讀寫位置

tell():獲取當前讀寫位置。

實例:

text.txt:(注意,此處該用了字母,沒有漢字,用了漢字結果會怎樣呢,有獎競猜呢😀)

ABCDEFG

程序代碼:

#第一次運行將會新建一個文件test.txt
file=open("text.txt","r")

print("當前位置:",file.tell())
print("讀取到的數據:",file.read(3))
print("當前位置:",file.tell())
print("讀取到的數據:",file.read(3))
print("當前位置:",file.tell())


#關閉
file.close()

結果:(每行後面都有換行符,全部下面結果行數之間會有空格)

當前位置: 0
讀取到的數據: ABC
當前位置: 3
讀取到的數據: DEF
當前位置: 6

六、定位到某個位置

seek(offset,from):用來進行定位。

offset:偏移量

from:0表示文件開頭,1表示當前位置,2表示文件結尾

實例:

text.txt:(注意,此處該用了字母,沒有漢字,用了漢字結果會怎樣呢,有獎競猜呢😀)

ABCDEFG

程序代碼:

#第一次運行將會新建一個文件test.txt
file=open("text.txt","r")

print("當前位置:",file.tell())
print("讀取到的數據:",file.read(1))
print("當前位置:",file.tell())

#將位置移動到:從文件開始的3個字節處
file.seek(3,0)
print("當前位置:",file.tell())
print("讀取到的數據:",file.read(1))


#關閉
file.close()

結果:(每行後面都有換行符,全部下面結果行數之間會有空格)

當前位置: 0
讀取到的數據: A
當前位置: 1
當前位置: 3
讀取到的數據: D

七、文件的重命名

os模塊中的rename()能夠完成對文件的重命名
import os

#將text.txt重名爲mark.txt
os.rename("text.txt","mark.txt")

八、文件的刪除

os模塊中的remove()能夠完成文件刪除操做
import os

os.remove("mark.txt")
相關文章
相關標籤/搜索