標準庫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() #關閉文件