我們在前面模塊中匯總的函數(shù)里,有的支持對文件目錄的高級(jí)操作,我們在這一節(jié)介紹一下這些函數(shù)的使用方式。
1. 重命名
我們在使用文件或者目錄的時(shí)候,總是離不開重命名操作的,有的時(shí)候我們可以選擇直接創(chuàng)建覆蓋,但是當(dāng)我們已存在的文件儲(chǔ)存大量信息的時(shí)候我們就需要重命名操作,我們使用os模塊中的os.rename()方法,使用Pycharm的同學(xué)可以發(fā)現(xiàn)在Pyacharm中手動(dòng)給文件重命名的名字也是rename,程序中重命名的格式為:
os.rename(src,dst)
src為更改的文件或者目錄名,dst為新的名字。
看下面的例子:
先創(chuàng)建一個(gè)文件夾:
import os print(os.getcwd())#如果不知道當(dāng)前的目錄,先輸出找到當(dāng)前的目錄。 os.mkdir(r'C:\Users\輕煙\PycharmProjects\untitled1\teach\new')#注意這個(gè)r,如果存在\t,\n這種內(nèi)容,在前面加r。
然后我們進(jìn)行重命名操作:
import os os.rename(r'C:\Users\輕煙\PycharmProjects\untitled1\teach\new',r'C:\Users\輕煙 \PycharmProjects\untitled1\teach\newname')
我們在重命名的時(shí)候都使用了絕對路徑,這種方式更為嚴(yán)謹(jǐn)一點(diǎn),在前面加個(gè)‘r’更好一點(diǎn),‘r’在前面學(xué)習(xí)過在這里就不作過多的介紹,重命名文件和目錄的方式一樣,就是注意一下后綴即可。
2. 刪除文件
刪除文件的時(shí)候我們使用os模塊中的os.remove()函數(shù),它的語法格式為:
os.remove(path)
path為我們要?jiǎng)h除文件的路徑,可以使用相對路徑或者絕對路徑,嚴(yán)謹(jǐn)?shù)氖褂梅绞绞鞘褂媒^對路徑,因?yàn)楫?dāng)需要?jiǎng)h除的文件不在當(dāng)前的工作目錄下,那么將會(huì)拋出異常。
看下面代碼:
運(yùn)行過后:
我們采用了絕對路徑和相對路徑刪除了當(dāng)前目錄下的兩個(gè)文件,如果我們使用相對路徑去刪除非當(dāng)前目錄下的文件是什么情況。
代碼如下:
import os os.remove('tst.py')
運(yùn)行結(jié)果:
Traceback (most recent call last): File "C:/Users/輕煙/PycharmProjects/untitled1/teach/test.py", line 2, in <module> os.remove('tst.py') FileNotFoundError: [WinError 2] 系統(tǒng)找不到指定的文件。: 'tst.py'
因此我們在刪除文件的時(shí)候最好使用絕對路徑:
import os os.remove(r'C:\Users\輕煙\PycharmProjects\untitled1\venv\tst.py')
3. 文件的基本信息
很多時(shí)候我們要通過程序去獲得當(dāng)前文件的一些信息,例如它的最后一次更改時(shí)間或者文件大小等。
我們使用os模塊中的os.stat()方法來獲取相關(guān)信息。
我們直接通過例子來學(xué)習(xí)使用這種方法:
import os file = os.stat('test.py') print(os.path.abspath('test.py'))#先訪問路徑 print(file.st_dev)#設(shè)備號(hào) print(file.st_size)#文件大小 print(file.st_atime)#最后一次訪問 print(file.st_mtime)#最后一次修改時(shí)間
輸出結(jié)果為:
C:\Users\輕煙\PycharmProjects\untitled1\teach\test.py 1010955597 239 1580789484.635313 1580789484.635313
4. 總結(jié)
關(guān)于文件和目錄的相關(guān)操作到這里就講完了,無論我們在使用C或者C++又或者是Java語言,項(xiàng)目開發(fā)的時(shí)候都離不開文件和目錄的管理,在實(shí)際開發(fā)的時(shí)候涉及到的內(nèi)容會(huì)更多,掌握好這些基礎(chǔ)操作,對未來的學(xué)習(xí)有很大的幫助。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程
從零到寫出一個(gè)爬蟲的Python編程課程
只會(huì)語法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程