日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Python中os模块使用方法

發(fā)布時間:2025/3/15 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python中os模块使用方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? os模塊提供了對系統(tǒng)環(huán)境、文件、目錄等操作系統(tǒng)級的接口函數(shù)。本文主要描述os模塊和os.path模塊常用函數(shù)以及常用實例。

os模塊函數(shù)

os.getcwd() 獲取當前工作的目錄。 os.listdir('dirname') 獲取指定目錄下的文件和目錄,以列表形式輸出 os.makedirs('dirname1/dirname2') 遞歸創(chuàng)建目錄,相當于shell中的mkdir -p命令 os.removedirs('dirname') 若目錄為空,則刪除,并遞歸到上一級目錄,如若也為空,則刪除,依此類推。不好用,建議使用shutil.rmtree() os.mkdir('dirname') 創(chuàng)建目錄;相當于shell中mkdir命令 os.rmdir('dirname') 刪除空目錄,若目錄不為空則無法刪除。相當于shell中rmdir命令 os.chdir('dirname') 切換到執(zhí)行目錄,相當于shell中cd命令 os.remove(path) 刪除path指定的文件 os.rename(old,new) 重命名文件或幕 os.chmod(path,mod) 改變文件的訪問權限,mode用UNIX系統(tǒng)中的權限代號表示 os.stat(path) 獲取path指定文件的所有屬性 os.sep 獲取操作系統(tǒng)特定的路徑分隔符,win下為"\\",Linux下為"/" os.linesep 獲取當前平臺使用的行終止符,win下為"\t\n",Linux下為"\n" os.pathsep 獲取用于分割文件路徑的字符串 os.name 獲取當前使用平臺。nt表示windows,posix 表示linux os.system('command') 執(zhí)行系統(tǒng)外部命令 os.environ 獲取系統(tǒng)環(huán)境變量 os.walk() 獲取指定目錄下的所有文件和目錄 os.tmpfile() 創(chuàng)建一個臨時文件,文件創(chuàng)建在操作系統(tǒng)的臨時目錄中

os.path模塊函數(shù)

os.path.abspath(path) 獲取path絕對路徑 os.path.split(path) 分割成目錄和文件名,以二元組形式返回 os.path.splitext(path) 從路徑中分割出文件的擴展名 os.path.dirname(path) 獲取文件路徑 os.path.basename(path) 獲取文件名 os.path.exists(path) 判斷文件或目錄是否存在 os.path.isabs(path) 判斷輸入的路徑是否為絕對路徑 os.path.isfile(path) 判斷是否為文件 os.path.isdir(path) 判斷是否為目錄 os.path.join(path1[, path2[, ...]]) 組合多個路徑 os.path.getctime(filename) 獲取文件或者目錄的創(chuàng)建時間 os.path.getatime(filename) 獲取文件或者目錄的最后存取時間 os.path.getmtime(filename) 獲取文件或者目錄的最后修改時間 os.path.getsize(filename) 獲取文件大小,如果為目錄,返回0

重點函數(shù)介紹

1、os.walk()

語法

? os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]])

參數(shù)描述

top 指定搜索目錄 topdown 可選參數(shù),默認值為True, 表示先返回頂級目錄下的文件,然后再遍歷子目錄中的文件。如果為False,表示先遍歷子目錄中的文件,然后再返回頂級目錄下的文件。 onerror 可選,默認值為None,表示忽略文件遍歷時的錯誤。如果不為空,則提供一個自定義函數(shù)提示錯誤信息后繼續(xù)遍歷或拋出異常中止遍歷。 followlinks 可選參數(shù),默認值為False。表示是否要跟隨目錄下的鏈接去繼續(xù)遍歷,要注意的是,os.walk不會記錄已經(jīng)遍歷的目錄,所以跟隨鏈接遍歷的話有可能一直循環(huán)調(diào)用下去。

輸出

返回3元組(dirpath, dirnames, filenames)。其中dirpath表示目錄的路徑,是一個字符串。dirnames 是一個列表,包含了dirpath下所有子目錄的名字。filenames是一個列表,包含了非目錄文件的名字。這些名字不包含路徑信息,如果需要得到全路徑,需要使用os.path.join(dirpath, name)

常用實例

? 1、目錄和文件的創(chuàng)建、刪除

#-*- coding:utf-8 -*-#import os import shutilcur_dir = os.getcwd() new_dir = os.path.join(cur_dir,'temp')if not os.path.exists(new_dir):os.makedirs(new_dir) else:shutil.rmtree(new_dir)os.makedirs(new_dir)new_file = os.path.join(new_dir,'tmp.log') fp = open(new_file,'w') fp.write('test') fp.close()

? 2、搜索并輸出指定的/home目錄下的所有文件

#!/usr/bin/python # -*- coding: UTF-8 -*-import ossearch_dir = '/home' for root, dirs, files in os.walk(search_dir):for name in files:print os.path.join(root, name)

? 3、獲取指定文件相關屬性

#!/usr/bin/python # -*- coding: UTF-8 -*-import osfile_stat = os.stat('/etc/passwd') print file_stat print 'os.stat.st_uid = %s ' % (file_stat.st_uid) #獲取文件所屬用戶ID print 'os.stat.st_gid = %s ' % (file_stat.st_gid) #獲取文件所屬組ID print 'os.stat.st_size = %s ' % (file_stat.st_size) #獲取文件大小,以字節(jié)輸出 print 'os.stat.st_atime = %s ' % (file_stat.st_atime) #獲取最近訪問時間 print 'os.stat.st_mtime = %s ' % (file_stat.st_mtime) #獲取最近修改時間 print 'os.stat.st_ctime = %s ' % (file_stat.st_ctime) #獲取創(chuàng)建時間。某些系統(tǒng)上(如Unix)是最新數(shù)據(jù)更改的時間。參考平臺文檔

? 4、根據(jù)關鍵字搜索指定目錄下的文件,并輸出文件名

#-*- coding:utf-8 -*-#import os import sys import reif len(sys.argv[1:]) == 0:print 'Please input search key words'sys.exit(1)search_keyword = sys.argv[1:] search_dir = os.getcwd() filelists = []for root, dirs, files in os.walk(search_dir):for filename in files:file_path = os.path.join(root, filename)pattern = '.*?'.join(search_keyword)regex = re.compile(pattern)fp = open(file_path,'r')for line in fp.readlines():match = regex.search(line)if match:print file_pathbreak

? ?5、統(tǒng)計指定目錄下的文件和文件夾大小,類似linux上的du功能

#-*- coding:utf-8 -*-#import osDIRECTORY = 'D:\\worktools'def getDirSize(dir):size = 0for root, dirs, files in os.walk(dir):size += sum([os.path.getsize(os.path.join(root, file)) for file in files])return sizeif __name__ == '__main__':for file in os.listdir(DIRECTORY):filepath = os.path.join(DIRECTORY,file)if os.path.isdir(filepath):dirsize = getDirSize(filepath)print "%s %.2fM" % (filepath,(dirsize/1024/1024))else:dirsize = os.path.getsize(os.path.join(DIRECTORY,filepath))print "%s %.2fM" % (filepath,(dirsize/1024/1024))

? 輸出結果如下:

D:\worktools\alipay_wap_main.apk 46.00M D:\worktools\Beyond_Compare-Trial-YY.exe 31.00M D:\worktools\java 2393.00M D:\worktools\jd-gui-0.3.3.windows 0.00M D:\worktools\npp_7.3.3_Installer.exe 2.00M D:\worktools\oracle 11g 1243.00M D:\worktools\oracle 11g enterprise 2241.00M D:\worktools\teamviewer 12.00M D:\worktools\TortoiseSVN-1.9.4.27285-x64-svn-1.9.4.msi 17.00M D:\worktools\wps 356.00M D:\worktools\xmanager 41.00M D:\worktools\xmanager.rar 41.00M D:\worktools\zhaoshangyinxing_422.apk 39.00M D:\worktools\反編譯 0.00M

?

轉(zhuǎn)載于:https://www.cnblogs.com/linyfeng/p/8278429.html

總結

以上是生活随笔為你收集整理的Python中os模块使用方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。