【python基礎】os模組的使用 - IT人
文章推薦指數: 80 %
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為專案的主目錄)
在其所在目錄的子目錄裡:
如果有多個上一級目錄,可以使用多個“…/”.)
在其所在目錄的上級目錄裡的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)
延伸文章資訊
- 1OS Module - Python - TutorialsTeacher
It is possible to automatically perform many operating system tasks. The OS module in Python prov...
- 2Python 速查手冊- 12.5 基本檔案與目錄處理os 與os.path
本篇文章介紹Python 標準程式庫的os 與os.path 模組。 ... os 與os.path 為處理作業系統相關及目錄路徑的模組(module) , os 有以下的常用常數 ...
- 3Python中import os是什么意思? - 知乎
首先合法的package必须含有一个__init__.py文件,package可以包含0个或多个module(py文件)。假设aa文件夹中有test.py文件和bb文件夹,bb文件夹里面有c.p...
- 4OS Module in Python with Examples - GeeksforGeeks
The OS module in Python provides functions for interacting with the operating system. OS comes un...
- 5Day7 Python 基礎- 認識模塊 - iT 邦幫忙
上面打印出來就是顯示目前硬碟容量空間,那現在如果想要把這結果存下來,要怎麼做? #!/usr/bin/env python3 # -*- coding:utf-8 -*- import os c...