文件系統

標準庫OS常用命令

  • 先自建一個文件夾
import os
os.getcwd()   #查看當前路徑
os.chdir("#文件夾路徑")  #修改當前路徑

建立一個子文件夾,已存在時會報錯
os.mkdir("#名稱")
刪除一個文件夾,不存在時會報錯
os.rmdir("#名稱")
列出當前目錄或指定目錄下所有文件夾及文件名稱,返回一個列表
os.listdir()
修改文件或文件夾的名稱
os.rename('#原名稱','#新名稱')
刪除一個文件
os.remove('#要刪除的文件名稱')
在每個文件名前加前綴

for i in os.listdir():
    os.rename(i,'233'+i)

文件的打開與關閉

open()函數提供7種基本的打開模式

‘r’ 只讀模式 ,如果文件不存在,返回異常FileNotFoundError,默認值
‘w’ 覆蓋寫模式,文件不存在則創建,存在則完全覆蓋源文件
‘x’ 創建寫模式 ,文件不存在則創建,存在則返回異常FileExistsError
‘a’ 追加寫模式,文件不存在則創建,存在則在原文件最後追加 內容
‘b’ 二進制文件模式
‘t’ 文本文件模式,默認值
‘+’ 與r/w/x/a一同使用,在原功能基礎上增加同時讀寫功能
rb 以二進制格式打開一個文件用於只讀。文件指針將會放在文件的開頭。這是默認模式。
wb 以二進制格式打開一個文件只用於寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
ab 以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入
r+ 打開一個文件用於讀寫。文件指針將會放在文件的開頭。
w+ 打開一個文件用於讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
a+ 打開一個文件用於讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開是會是追加模式。如果該文件不存在,創建新文件用於讀寫。
rb+ 以二進制格式打開一個文件用於讀寫。文件指針將會放在文件開頭。
wb+ 以二進制格式 打開一個文件用於讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
ab+ 以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用於讀寫。

文件關閉close()

程序執行完畢後,系統會關閉由該程序打開的文件,但更好的做法,是在文件使用完畢後,由程序調用cose()方法關閉文件。
實際上,計算機中可打開的文件數量是有限的,每打開一個文件,就會佔用一個“名額”,當該“名額”耗盡後,系統將無法再打開新的文件。此外,當文件以緩衝方式打開時,磁盤文件與內存間的讀寫並不是即時的,若程序因異常關閉,可能導致緩衝區中的數據無法寫入文件,造成數據丟失,
綜上所述,在文件使用完畢後,及時使用close()函數關閉文件是有必要的.

read()

read()方法可從指定文件中讀取指定字節的數據,該方法的定義如下:
read(size)
其中參數size用於指定從文件中讀取的數據的字節數,若參數缺參,則一次讀出指定文件中的所有數據。

>>>f = open("./a.txt")
>>>f.read(5)       #從a.txt中讀取5個字節
>‘hello’
>>>f.read(3)      #從a.txt中讀取3個字節(從還未讀取的位置開始)
>‘ it’
>>>f.read()         #讀取剩餘的全部數據
>‘heima.\nhello itcast.hello world.’
>>>f.read()              #再次調用,讀取到的數據爲空
>..

readline()

按行讀取(一行一行)

readlines()

按行讀取(返回所有行)

tell()

用戶可通過tell()方法獲取文件當前的讀寫位置。以操作文件a.txt爲例. tell()的用法如下所示。

>>> f = open("a.txt")
>>> f.tell()
>0
>>>f.read(5)
>'hello'
>>>f.tell()
>5
>>>f.close( )

seek()

一般情況下,文件的讀寫是順序的,但並非每次讀寫都需從當前位置開始。Python提供了seek()方法,使用該方法可控制文件的讀寫位置,實現文件的隨機讀寫。seek()方法的聲明如下:
seek(offset,from)
其中參數offset表示偏移量,即讀寫位置需要移動的字節數: from用於指定文件的讀寫位置,該參數的取值爲: 0,1,2,它們代表的含義分別如下:

  • 0:表示文件開頭
  • 1:表示使用當前讀寫位置.
  • 2:表示文件末尾
    例:
    • seek(x,0) :從起始位置即文件首行首字符開始移動X個字符
    • seek(x,1) :表示從當前位置往後移動X個字符
    • seek(-x,2) :表示從文件的結尾往前移動X個字符

write()

write(str)
其中str表示要寫入文件中的字符串。若調用成功則返回本次寫入文件中的字節數。

>>>f = open('a.txt','w')            #要寫入內容,必須要先打開文件
>>>f .write("a.\n")
3                                       #本次寫入文件的字節數
>>>f.write("abc.")
4                                   #本次寫入文件的字節數
>>>f.write("hello world.")
12                                    #本次寫入文件的字節數
>>>f.close()                              #關閉文件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章