我們對(duì)文件的管理是通過文件對(duì)象的方式實(shí)現(xiàn)的,而文件是Python中os模塊,我們?cè)?strong>管理文件或目錄的時(shí)候,就需要使用Python中的os模塊,os模塊中有非常多的方法來幫助我們處理文件及目錄。
1. os模塊
常用的os方法如下表格:
方法 | 功能 |
os.access(path, name) | 特權(quán)模式 |
os.chdir(path) | 改變當(dāng)前工作目錄 |
os.chflags(path, flags) | 設(shè)置路徑的標(biāo)記為數(shù)字標(biāo)記 |
os.chmod(path, name) | 更改權(quán)限 |
os.chown(path, uid, gid) | 更改文件所有者 |
os.chroot(path) | 改變當(dāng)前進(jìn)程的根目錄os.close(x) |
os.close(x) | 關(guān)閉文件 |
os.fchdir(x) | 通過文件描述符改變當(dāng)前工作目錄 |
os.getcwd() | 返回當(dāng)前工作目錄 |
os.listdir(path) | 返回當(dāng)前目錄下的所有文件及文件夾的列表 |
os.mkdir(path[,name]) | 創(chuàng)建一個(gè)名字為name的文件夾名 |
os.open(file) | 打開一個(gè)文件 |
os.remove(path) | 刪除path路徑的文件 |
os.rename(src,dst) | 修改文件名,src為源文件,dst為目標(biāo)文件 |
os.rmdir(path) | 刪除path對(duì)應(yīng)的目錄 |
還有一些簡(jiǎn)單的os模塊中內(nèi)容我們?cè)谶@里舉例子來看一下:
>>> import os >>> os.name#返回nt為windows,posix為L(zhǎng)inux、Unix或mac os。 >>> os.linesep#當(dāng)前系統(tǒng)的換行符 '\r\n' >>> os.sep#當(dāng)前系統(tǒng)的分隔符 '\\' >>> os.name 'nt'
2. os.path模塊
os.path是一個(gè)針對(duì)路徑的模塊,模塊內(nèi)提供對(duì)文件、目錄和路徑管理的函數(shù),常見的函數(shù)如下表格:
os.path.abspath(path) | 返回路徑名路徑的規(guī)范化絕對(duì)化版本 |
os.path.basename(path) | 返回路徑名路徑的基名稱 |
os.path.commonprefix(list) | 返回序列路徑中每個(gè)路徑名的最長(zhǎng)公共子路徑 |
os.path.dirname(path) | 返回路徑名路徑的目錄名 |
os.path.exists(path) | 如果路徑引用現(xiàn)有路徑或打開的文件描述符,則返回True,中斷的符號(hào)鏈接返回Flase |
os.path.lexists | 如果路徑引用現(xiàn)有路徑,則返回True |
os.path.expanduser(path) | 返回參數(shù),初始組件為~或~user替換為該用戶的主目錄 |
os.path.expandvars(path) | 返回環(huán)境變量展開的參數(shù) |
os.path.getatime(path) | 返回路徑的最后訪問時(shí)間 |
os.path.getmtime(path) | 返回上次修改路徑的時(shí)間 |
os.path.getctime(path) | 返回文件 path 的創(chuàng)建時(shí)間 |
os.path.getsize(path) | 返回路徑的大小,以字節(jié)為單位 |
os.path.isabs(path) | 如果路徑是絕對(duì)路徑名,則返回True |
os.path.isfile(path) | 如果路徑是文件,則返回True |
os.path.isdir(path) | 如果路徑是目錄,則返回True |
os.path.islink(path) | 如果路徑是鏈接,則返回True |
os.path.ismount(path) | 如果路徑是掛載點(diǎn),則返回True |
os.path.join(path1[, path2[, ...]]) | 把目錄和文件名合成一個(gè)路徑 |
os.path.normcase(path) | 轉(zhuǎn)換path的大小寫和斜杠 |
os.path.normpath(path) | 規(guī)范path字符串形式 |
os.path.realpath(path) | 返回path的真實(shí)路徑 |
os.path.relpath(path[, start]) | 計(jì)算相對(duì)路徑 |
os.path.samefile(path1, path2) | 判斷目錄或文件是否相同 |
os.path.sameopenfile(fp1, fp2) | 判斷fp1和fp2是否指向同一文件 |
其中最常用的幾種分別是abspath()、exists(path)、join(path,name)、basename(path)、dirname(path)、isdir(path),我們來看個(gè)例子。
import os print('當(dāng)前目錄:',os.getcwd()) print('判斷當(dāng)前目錄是否存在,存在的話返回True',os.path.exists(os.getcwd()))
輸出結(jié)果為:
當(dāng)前目錄: C:\Users\teach 判斷當(dāng)前目錄是否存在,存在的話返回True True
3. 總結(jié)
我們?cè)谑褂玫倪^程中,涉及路徑的我們可以采用os.path模塊中的方法,我們?cè)趯?dǎo)入的時(shí)候采用的方式都是import.os,os.path屬于os中的一個(gè)子模塊,在使用的時(shí)候可以根據(jù)情況去使用其中的方法,但一定不要忘記提前導(dǎo)入。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(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é)課程:算法競(jìng)賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程