日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Python中os模块使用方法

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

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

os模塊函數

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

os.path模塊函數

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) 獲取文件或者目錄的創建時間 os.path.getatime(filename) 獲取文件或者目錄的最后存取時間 os.path.getmtime(filename) 獲取文件或者目錄的最后修改時間 os.path.getsize(filename) 獲取文件大小,如果為目錄,返回0

重點函數介紹

1、os.walk()

語法

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

參數描述

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

輸出

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

常用實例

? 1、目錄和文件的創建、刪除

#-*- 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) #獲取文件大小,以字節輸出 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) #獲取創建時間。某些系統上(如Unix)是最新數據更改的時間。參考平臺文檔

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

#-*- 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、統計指定目錄下的文件和文件夾大小,類似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

?

轉載于:https://www.cnblogs.com/linyfeng/p/8278429.html

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。