【python基礎】os模組的使用 - IT人

文章推薦指數: 80 %
投票人數:10人

os簡介os 模組是關於作業系統操作呼叫的相關模組,對檔案進行重新命名、刪除等一系列操作,在python中可以用os模組os模組提供了一些系統級別的操作 ... Togglenavigation IT人 IT人 【python基礎】os模組的使用 最愛吃大米發表於 2020-12-16 Python os簡介 os模組是關於作業系統操作呼叫的相關模組,對檔案進行重新命名、刪除等一系列操作,在python中可以用os模組 os模組提供了一些系統級別的操作 官網api 相對路徑與絕對路徑 ==絕對路徑:==是指檔案在硬碟上真正存在的路徑。

那麼如果要使用絕對路徑指定網頁的背景圖片就應該使用以下語句: /Users/liuhuanhuan/PycharmProjects/blog/os模組操作/os.md 注:Macos/linux中可直接使用pwd檢視當前檔案的絕對路徑 相對路徑,就是相對於自己的目標檔案位置。

在同一個目錄:(blog為專案的主目錄) 在其所在目錄的子目錄裡:(此目錄為blog的二級目錄) 在其所在目錄的上級目錄裡:(在相對路徑裡常使用“…/”來表示上一級目錄。

如果有多個上一級目錄,可以使用多個“…/”.) 在其所在目錄的上級目錄裡的os子目錄裡:<.> 常見函式 1.getcwd() 作用:返回當前工作目錄 importos print(os.getcwd()) 2.rename(old,new) 作用:修改檔名稱 注:old的目錄必須是存在的,否則報錯 importos os.rename('1.py','2.py') 3.remove(filename) 作用:刪除指定的檔案,如果path是目錄則會丟擲OSError importos os.remove('3.py') 4.mkdir(name) 作用:建立單級目錄 importos os.mkdir('gl') os.mkdir("/Users/lhh/Downloads/idea") 5.rmdir(filename) 作用:刪除單級目錄 注:若存在子目錄,則無法刪除,必須為空且存在 importos s.rmdir('gl') os.rmdir("/Users/lhh/Downloads/idea")#刪除失敗。

只能刪除目錄檔案下面是空的 #如果要刪除非空目錄的話,就需要呼叫shutil模組 importshutil shutil.rmtree("/Users/lhh/Downloads/idea")#成功刪除非空的資料夾 6.chdir(filename) 作用:改變當前檔案的工作目錄 importos os.chdir('../') 7.listdir(filename) 作用:返回當前目錄下所有檔案和資料夾,注意path是目錄路徑 importos #初始寫法 file_list=os.listdir("dname") fornameinfile_list: #列印列表的名稱 print(name) #新寫法 #使用with自動的去釋放資源 withos.scandir("/Users/liuhuanhuan/")asentries: forentryinentries: print(entry.name) pass Demo #示範:檢視一個資料夾下所有的檔案 basePath="/Users/liuhuanhuan/" forentryinos.listdir(basePath): #ifos.path.isfile(os.path.join(basePath,entry)):#只顯示是檔案的目錄檔名稱 ##print(entry) ifos.path.isdir(os.path.join(basePath,entry)):#只顯示是資料夾的目錄名稱 print(entry) pass 8.path.join(filename1,filename2…) 作用:檔案路徑地址拼接 importos path=os.path.join(os.getcwd(),'gl') 9.makedirs(filename) 作用:遞迴建立目錄,只是目錄,檔案無法建立 filename只有最後一層資料夾不存在,前幾級必須是已存在的目錄,否則建立失敗 importos os.makedirs("/Users/lhh/Downloads/idea/l/h/h/w/c/y/wo/ai/ni")#允許建立多級目錄 10.write(path,str) 作用:將bytes字串str寫入path所指的檔案 importos os.write('/Users/lhh/Downloads/a.txt','missyou') 11.chmod(filename) 作用:改變檔案的許可權 importos os.chmod('/Users/lhh/Downloads/a.txt') 13.pardir 作用:指代上一級當前目錄 importos print(os.pardir) 14.name 作用:指代當前使用的作業系統(包括‘java’,'mac’等) importos print(os.name) 15.linesep 作用:當前平臺使用的行終止符(win下為‘\r\n’,linux下為‘\n’) importos print(os.linesep) 以上均為常使用的方法: 附錄: os方法大全 os.path模組 os.path.isdir(‘name’)判斷是否為目錄返回bool os.path.isfile(‘name’)判斷是否為檔案返回bool os.path.islink(‘name’)判斷是否為連結返回bool os.path.getsize(‘name’)返回檔案大小,如果檔案不存在返回錯誤 os.path.abspath(‘file_name’)返回的是file_那麼的絕對路徑 os.path.split(‘file_path’)返回file_path分割成目錄和檔名,以元組方式返回 os.path.exists(‘file_path’)如果file_path存在返回True反之返回False os.path.join(‘file_path’,’file_name’)連線目錄和檔名或者目錄 os.path.isabs()判斷是否是絕對路徑 os.path.exists()檢驗給出的路徑是否真地存 os.path.splitext()分離副檔名 os.path.dirname()獲取路徑名os.path.basename()獲取檔名os.system()執行shell命令os.getenv()與os.putenv()讀取和設定環境變數os.stat(file)獲取檔案屬性os.exit()終止當前程式os.path.getsize(filename)獲取檔案大小 importtime模組 Time.ctime()返回本地時間 os.path.getatime()檔案或者目錄最後訪問的時間 os.path.getmtime()最後修改的時間 os.path.getctime()建立時間 程式碼綜合實操: #coding=utf-8 importre importos importtime #str.split(string)分割字串 #'連線符'.join(list)將列表組成字串 defchange_name(path): ifnotos.path.isdir(path)andnotos.path.isfile(path): returnFalse ifos.path.isfile(path): file_path=os.path.split(path)#分割出目錄與檔案 lists=file_path[1].split('.')#分割出檔案與副檔名 file_ext=lists[-1]#取出字尾名(列表切片操作) img_ext=['bmp','jpeg','gif','psd','png','jpg'] iffile_extinimg_ext: os.rename(path,file_path[0]+'/'+lists[0]+'_fc.'+file_ext) i+=1#注意這裡的i是一個陷阱 #或者 #img_ext='bmp|jpeg|gif|psd|png|jpg' #iffile_extinimg_ext: #print('ok---'+file_ext) elifos.path.isdir(path): forxinos.listdir(path): change_name(os.path.join(path,x))#os.path.join()在路徑處理上很有用 img_dir='D:\\xx\\xx\\images' img_dir=img_dir.replace('\\','/') start=time.time() i=0 change_name(img_dir) c=time.time()-start print('程式執行耗時:%0.2f'%(c)) print('總共處理了%s張圖片'%(i)) ​ ​ 相關文章 [轉]Cocos2d-x下Lua呼叫自定義C++類和函式的最佳實踐 2020-12-15 C++ python——集合set不存在重複元素 2020-12-15 Python vue前端關於token的使用(基礎) 2020-12-15 前端Vue 蘋果釋出iOS14.3正式版,帶來多個新功能,可惜...... 2020-12-16 iOS Springboot之登入模組探索(含Token,驗證碼,網路安全等知識) 2020-12-16 Spring Python基礎12(模組與datetime模組) 2020-12-16 Python python實踐中的錯誤彙總篇 2020-12-16 Python 從入門到放棄:Python+seleniumunittest測試框架及基本語法規則 2020-12-16 Python框架 Python基礎11(魔法方法) 2020-12-16 Python 【Python入門基礎】程式和執行緒 2020-12-16 Python rosconsole設定 2020-12-16 list列表運算子,列表元素的遍歷,列表的方法,生成列表,巢狀的列表|python自學筆記(四) 2020-12-16 Python Linux入門教程:Centos安裝Python2.7與Python3.5雙版本,正文首先,先下載P 2020-12-16 PythonLinuxCentOS 20201215-經典基礎C語言題01-三個數排大小 2020-12-16 solr(三)centos7.6安裝配置javasdk1.8及執行solr 2020-12-16 JavaCentOS python中list切片詳解 2020-12-16 Python windows10安裝python3 2020-12-16 PythonWindows10 cosine_similarity和torch.cosine_similarity速度差異(人間奇事) 2020-12-16 CentOS7系統重新命名 2020-12-16 CentOS 最新文章 LeetCode-441-排列硬幣 【mq】從零開始實現mq-03-引入broker中間人 前端面試資料整理【css篇】 【PyTorch】常用的神經網路層彙總(持續補充更新) 基於.NetCore開發部落格專案StarBlog-(4)markdown部落格批量匯入 Kafka核心元件詳解 QtWebEngine效能問題 淺談支付系統開發基本流程 Mermaid流程圖入門 開源也上雲?在Azure上執行紅帽企業Linux變身“超級引擎” 機器學習筆記---資料預處理 react實戰系列——我的儀表盤(bizcharts、antd、moment)



請為這篇文章評分?