Python的os模塊是一個(gè)跟操作系統(tǒng)結(jié)合比較密切的模塊,里面提供了很多很多比較有用的方法。
?
os.getcwd() ? 獲取當(dāng)前工作目錄,即該P(yáng)ython腳本運(yùn)行時(shí)的目錄
print(os.getcwd())
結(jié)果:/Users/ssspure/PycharmProjects/File/osmodule
?
? ?2. os.chdir("dirname") ?切換到指定的目錄,返回值是None
?
???3.?os.curdir ?這并不是一個(gè)函數(shù),而是返回一個(gè)代表當(dāng)前目錄的常量
返回值是:"."
官方解釋:The constant string used by the operating system to refer to the current directory. This is '.' for Windows and POSIX. Also available via os.path.
?
? ?4.?os.pardir ?跟上面的os.curdir是一樣的,返回值是:".."
官方解釋:The constant string used by the operating system to refer to the parent directory. This is '..' for Windows and POSIX. Also available via os.path.
?
? ?5.?os.makedirs(dirname, mode=0o777, exist_ok=False)?創(chuàng)建目錄,可以指定多個(gè)不存在的目錄, ? ? ? ? ?Python遞歸創(chuàng)建這些目錄
os.makedirs("test/demo", 0o700)
? ?例如上面的代碼中,會(huì)在當(dāng)前目錄下先創(chuàng)建test目錄,之后再test目錄下創(chuàng)建demo目錄。
? mode參數(shù)指的是要設(shè)置創(chuàng)建目錄的權(quán)限,需要注意的一點(diǎn)是,第一位的權(quán)限必須是7,否則在創(chuàng)建多個(gè)目錄的時(shí)候會(huì)報(bào)錯(cuò),如下代碼所示。
os.makedirs("test/demo", 0o600, True)
上面的代碼只能創(chuàng)建test目錄,并且會(huì)出現(xiàn)這樣的錯(cuò)誤:PermissionError: [Errno 13] Permission denied: 'test/demo'
這是因?yàn)閯?chuàng)建的test目錄權(quán)限是rw-------,也就是當(dāng)前用戶并沒有進(jìn)入test目錄的權(quán)限,所以demo目錄在創(chuàng)建的時(shí)候就會(huì)出錯(cuò)。
exist_ok:該參數(shù)如果是False時(shí),如果已經(jīng)想要?jiǎng)?chuàng)建的目錄已經(jīng)存在,就會(huì)報(bào)錯(cuò),如果是True,當(dāng)要?jiǎng)?chuàng)建的目錄存在時(shí)不會(huì)報(bào)錯(cuò)。
?
? 6. os.removedirs("dir1/dir2/dir3") ?遞歸刪除目錄
? 首先刪除dir3,之后刪除dir2,最后刪除dir1。如果dir2目錄下面除了dir1之外還有別的目錄或者文件, ? ? 再刪除dir3之后,并不會(huì)刪除dir2。
?
? 7. os.mkdir("test", 0o777)
? 創(chuàng)建單個(gè)空目錄
?
? 8. rmdir("test") ? 刪除單個(gè)空目錄,如果目錄不為空的情況下會(huì)報(bào)錯(cuò)
?
? 9. os.listdir(dirname) ?列出指定目錄下的所有文件和文件夾,報(bào)錯(cuò)隱藏的目錄,返回值是一個(gè)列表
print(os.listdir("."))
上面代碼的執(zhí)行結(jié)果是:['__init__.py', 'odmodule.py', 'test']
?
? 10. os.remove(file) ?刪除一個(gè)文件
?
? 11. os.rename(file1, file2) ?將file1的文件名改為file2
?
? 12. os.stat(file) ?獲取file文件的相關(guān)信息,這些信息封裝在一個(gè)元組中
print(os.stat("demo.txt"))
返回結(jié)果:os.stat_result(st_mode=33188, st_ino=4067145, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=8, st_atime=1484573900, st_mtime=1484573764, st_ctime=1484573764)
?
? 13. os.sep ?返回當(dāng)前操作系統(tǒng)下的路徑分隔符
? ?Linux的路徑分隔符是"/",Windows的是"\\"
?
? 14. os.pathsep ?返回當(dāng)前操作系統(tǒng)的環(huán)境變量分隔符
? ?Linux的路徑分隔符是":",Windows的是";"
?
? 15. os.linesep ? 返回當(dāng)前操作系統(tǒng)的行分隔符
? ?Linux的路徑分隔符是"\n",Windows的是"\r\n"
?
? ?16. os.name ?輸出當(dāng)前平臺(tái)的字符串名稱
? ?Linux-->posix ? ? ?win-->nt
?
? ?17.?os.system(command) ? ?執(zhí)行相應(yīng)平臺(tái)的Shell命令
os.system("ls")
列出當(dāng)前目錄下的文件,相當(dāng)于執(zhí)行l(wèi)s命令
?
? ?18. os.environ ? ?輸出當(dāng)前系統(tǒng)的環(huán)境變量
?
? ?19. os.path.abspath(path) ? ?返回指定路徑的絕對(duì)路徑 ? ?
print(os.path.abspath("."))
上面返回的結(jié)果是:/Users/ssspure/PycharmProjects/File/osmodule
?
? ?20.?os.path.split(path) ? 將指定的path分割成目錄和文件,即使不存在的路徑也能分割成功,最后返回一個(gè)目錄和文件組成的元組
print(os.path.split("/User/demo/test"))
?
? ?21. os.path.dirname(path)和os.path.basename(path)
? ?這兩個(gè)分別返回目錄名和文件名,其實(shí)也就是os.path.split函數(shù)的第一個(gè)和第二個(gè)結(jié)果
print(os.path.dirname("/Users/test/python"))print(os.path.basename("/Users/test/python"))
輸出的結(jié)果分別是:
/Users/test
python
?
? ?22. os.path.exists(path) ? ?判斷指定的路徑是否存在,存在返回True,不存在返回False
print(os.path.exists("/Users/ssspure/專用播放器.exe"))
執(zhí)行上面的代碼返回True
?
print(os.path.exists("/Users/ssspure/專用播放器1.exe"))
上面的代碼返回False
?
? 23. os.path.isabs(path) ? 判斷路徑是否是絕對(duì)路徑,這個(gè)函數(shù)并不會(huì)判斷路徑是否是有效存在的路徑。
? ?Linux平臺(tái)下凡是以"/"開頭的路徑都會(huì)被該函數(shù)判斷為絕對(duì)路徑,Windows下以磁盤開頭的會(huì)被判斷為絕對(duì)路徑
?
? 24. os.path.isfile(filepath) ? 判斷指定的文件是否為文件
print(os.path.isfile("/Users/ssspure/專用播放器.exe"))
上面代碼的執(zhí)行結(jié)果返回的是True
?
? 25. os.path.isdir(path) ? 返回指定的路徑是否是一個(gè)目錄
print(os.path.isdir("/Users/ssspure"))
上面代碼的執(zhí)行結(jié)果是True
?
? 26. os.path.join(path1,path2,path3...) ? 將多個(gè)路徑拼接到一起
print(os.path.join("ssspure", "test", "demo"))
書面代碼的輸出結(jié)果是:ssspure/test/demo
?
? 27. os.path.getatime(path)和os.path.getmtime(path) 分別返回對(duì)應(yīng)文件的上一次訪問時(shí)間和修改時(shí)間
print(os.path.getatime("/Users/ssspure/專用播放器.exe"))print(os.path.getmtime("/Users/ssspure/專用播放器.exe"))
上面代碼的執(zhí)行結(jié)果是:
1484566427.0
1481293274.0
返回的是時(shí)間戳
來源:http://www.icode9.com/content-1-155651.html聯(lián)系客服