python库整理:os
1 檢查路徑訪問(wèn)權(quán)限(os.access)
os.access(path,mode)
- path?-- 要用來(lái)檢測(cè)是否有訪問(wèn)權(quán)限的路徑。
- mode?-- mode為F_OK,測(cè)試存在的路徑,或者它可以是包含R_OK, W_OK和X_OK或者R_OK, W_OK和X_OK其中之一或者更多。
- os.F_OK:?作為access()的mode參數(shù),測(cè)試path是否存在。
- os.R_OK:?包含在access()的mode參數(shù)中 , 測(cè)試path是否可讀。
- os.W_OK?包含在access()的mode參數(shù)中 , 測(cè)試path是否可寫。
- os.X_OK?包含在access()的mode參數(shù)中 ,測(cè)試path是否可執(zhí)行。
- 上述參數(shù)如果是可以,那么返回True,否則返回False
2?當(dāng)前工作目錄(os.getcwd)
3?改變當(dāng)前工作目錄到指定的路徑(os.chdir)
os.chdir(path)
change direction
4 修改當(dāng)前進(jìn)程的根目錄(os.chroot)
os.chroot(path)
修改當(dāng)前進(jìn)程的根目錄
這一個(gè)函數(shù)需要管理員權(quán)限
5?關(guān)閉指定文件(os.close)
os.close(file)
6?返回指定的文件夾包含的文件或文件夾的名字的列表(os.listdir)
7?遞歸創(chuàng)建目錄(os.makedirs)
8 創(chuàng)建最后一級(jí)目錄(os.mkdir)
如果目錄有多級(jí),那么創(chuàng)建最后一級(jí)
如果最后一級(jí)目錄的上一級(jí)目錄是不存在的,那么拋出一個(gè)OSError
os.makedirs就可以
9 打開(kāi)文件(os.open)
os.open(file,flag)
flags?-- 該參數(shù)可以是以下選項(xiàng),多個(gè)使用 "|" 隔開(kāi):
- os.O_RDONLY:?以只讀的方式打開(kāi)
- os.O_WRONLY:?以只寫的方式打開(kāi)
- os.O_RDWR :?以讀寫的方式打開(kāi)
- os.O_NONBLOCK:?打開(kāi)時(shí)不阻塞
- os.O_APPEND:?以追加的方式打開(kāi)
- os.O_CREAT:?創(chuàng)建并打開(kāi)一個(gè)新文件
- os.O_TRUNC:?打開(kāi)一個(gè)文件并截?cái)嗨拈L(zhǎng)度為零(必須有寫權(quán)限)
- os.O_EXCL:?如果指定的文件存在,返回錯(cuò)誤
- os.O_SHLOCK:?自動(dòng)獲取共享鎖
- os.O_EXLOCK:?自動(dòng)獲取獨(dú)立鎖
- os.O_DIRECT:?消除或減少緩存效果
- os.O_FSYNC :?同步寫入
- os.O_NOFOLLOW:?不追蹤軟鏈接
10?讀取n個(gè)字節(jié)的file文件(os.read)
os.read(file,n)
11?移除一個(gè)文件(os.remove)
os.remove(file)
移除一個(gè)文件
如果file是一個(gè)文件夾,那么會(huì)拋出OSError
12?遞歸移除目錄(os.removedirs)
os.removedirs(path)
13 刪除目錄(os.rmdir)
只有指定文件夾是空的時(shí)候,才可以刪除,否則,拋出OSError
14?重命名(os.rename)
os.rename(src1,src2)
重命名文件/目錄,從src1命名為src2
15?遞歸地重命名(os.renames)
os.renames(src1,src2)
遞歸地重命名目錄/文件
16 執(zhí)行命令(os.system)
在命令行上執(zhí)行括號(hào)里面的命令
注:命令行和主程序是同步執(zhí)行的。也就是說(shuō),在尚未執(zhí)行完成的情況下,主程序不會(huì)繼續(xù)執(zhí)行下去
17?os.path
17.1?判斷括號(hào)里的文件是否存在(os.path.exists)
判斷括號(hào)里的文件是否存在(可以是文件路徑,默認(rèn)為當(dāng)前路徑)
17.2?返回文件的絕對(duì)路徑
os.path.abspath()和os.path.realpath()
如果參數(shù)為空,那么返回當(dāng)前文件所在目錄的絕對(duì)路徑
17.3?連接兩個(gè)或更多的路徑名(os.path.join)
連接兩個(gè)或更多的路徑名組
如果如果各組件名首字母不包括'/',那么函數(shù)會(huì)自動(dòng)加上
如果有一個(gè)組件是一個(gè)絕對(duì)路徑,那么在他之前的所有組件都會(huì)被舍棄
如果最后一個(gè)組件為空,那么生成的路徑是一個(gè)以'/'作為分隔符結(jié)尾的路徑
17.4 返回文件所在的文件夾的路徑(Os.path.dirname)
必須是實(shí)際存在的py文件,如果在命令行直接,就會(huì)引發(fā)異常(__file__ is not defined)
一般常和abspath連用,效果更好
17.5?是否是目錄類型(os.path.isdir)
os.path.isdir(isfile)
是否是目錄類型(是否是文件類型)
17.6 是否是文件類型(os.path.isfile)
17.7?把文件名和后綴進(jìn)行切分(os.path.splitext)
split ——dirname和basename分開(kāi)
?
17.8?返回path最后的文件名(os.path.basename)
返回path最后的文件名。如果path以/或\結(jié)尾,那么就會(huì)返回空值。
17.9?返回list(多個(gè)路徑)中,所有path共有的最長(zhǎng)的路徑(os.path.commonprefix)
os.path.commonprefix(list)
17.10 文件相關(guān)時(shí)間
文件創(chuàng)建時(shí)間(create)
文件最近修改時(shí)間(modify)
文件最近訪問(wèn)時(shí)間
17.11?返回文件大小
如果文件不存在就返回錯(cuò)誤
17.12?判斷是否為絕對(duì)路徑
17.13?轉(zhuǎn)換path的大小寫和斜杠
17.14?規(guī)范path字符串形式
17.15?計(jì)算相對(duì)路徑
os.path.relpath(path[, start])
從start開(kāi)始計(jì)算相對(duì)路徑
17.16?判斷目錄或文件是否相同
os.path.samefile(path1, path2)
18 os包應(yīng)用
18.1?在指定目錄下查找指定后綴名的文件,要查找所有子目錄,返回文件路徑名列表
import osdef get_list(base_dir='',target_ext=''):f_lst=[]#用于記錄文件名稱的列表for f_name in os.listdir(base_dir):#檢查目錄里面的每個(gè)文件path=os.path.join(base_dir,f_name) #文件名絕對(duì)路徑if(os.path.isfile(path)):#判斷是否是文件fname,f_ext=os.path.splitext(f_name)#把文件名和文件后綴分開(kāi)if(f_ext==target_ext):#如果是指定的后綴名f_lst.append(path)#將符合條件的文件加入列表elif(os.path.isdir(path)):#判斷是否是文件類型tmp_list=get_list(path,target_ext) #遞歸調(diào)用查找子目錄中是否有指定類型文件f_lst.extend(tmp_list)else:passreturn(f_lst)get_list(os.getcwd(),'.txt')''' ['D:\\tmp\\1.txt', 'D:\\tmp\\2.txt', 'D:\\tmp\\output\\tmp\\result.txt'] '''?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的python库整理:os的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 文巾解题35. 搜索插入位置
- 下一篇: python库整理:networkx 包