【python基礎】os模組的使用
os簡介
os 模組是關於作業系統操作呼叫的相關模組,對檔案進行重新命名、刪除等一系列操作,在python中可以用os模組
os模組提供了一些系統級別的操作
相對路徑與絕對路徑
==絕對路徑:==是指檔案在硬碟上真正存在的路徑。那麼如果要使用絕對路徑指定網頁的背景圖片就應該使用 以下語句:
/Users/liuhuanhuan/PycharmProjects/blog/os模組操作/os.md
注: Mac os /linux 中可直接使用pwd檢視當前檔案的絕對路徑
相對路徑,就是相對於自己的目標檔案位置。
在同一個目錄: (blog為專案的主目錄)
在其所在目錄的子目錄裡: <os模組操作> (此目錄為blog的二級目錄)
在其所在目錄的上級目錄裡: <…/os.md> (在相對路徑裡常使用“…/”來表示上一級目錄。如果有多個上一級目錄,可以使用多個“…/”.)
在其所在目錄的上級目錄裡的os子目錄裡:<./os/os.md>
常見函式
1. getcwd()
作用:返回當前工作目錄
import os
print(os.getcwd())
2. rename(old, new)
作用:修改檔名稱
注: old 的目錄必須是存在的,否則報錯
import os
os.rename('1.py','2.py')
3. remove(filename)
作用:刪除指定的檔案,如果 path 是目錄則會丟擲 OSError
import os
os.remove('3.py')
4. mkdir(name)
作用:建立單級目錄
import os
os.mkdir('gl')
os.mkdir("/Users/lhh/Downloads/idea")
5. rmdir(filename)
作用:刪除單級目錄
注:若存在子目錄,則無法刪除,必須為空且存在
import os
s.rmdir('gl')
os.rmdir("/Users/lhh/Downloads/idea") #刪除失敗。只能刪除目錄檔案下面是空的
# 如果要刪除非空目錄的話,就需要呼叫shutil模組
import shutil
shutil.rmtree("/Users/lhh/Downloads/idea") #成功刪除非空的資料夾
6.chdir(filename)
作用:改變當前檔案的工作目錄
import os
os.chdir('../')
7.listdir(filename)
作用:返回當前目錄下所有檔案和資料夾,注意 path 是目錄路徑
import os
# 初始寫法
file_list = os.listdir("dname")
for name in file_list:
#列印列表的名稱
print(name)
#新寫法
#使用with自動的去釋放資源
with os.scandir("/Users/liuhuanhuan/") as entries:
for entry in entries:
print(entry.name)
pass
Demo
#示範:檢視一個資料夾下所有的檔案
basePath = "/Users/liuhuanhuan/"
for entry in os.listdir(basePath):
# if os.path.isfile(os.path.join(basePath,entry)): #只顯示是檔案的目錄檔名稱
# # print(entry)
if os.path.isdir(os.path.join(basePath,entry)): #只顯示是資料夾的目錄名稱
print(entry)
pass
8.path.join(filename1,filename2…)
作用:檔案路徑地址拼接
import os
path = os.path.join(os.getcwd(),'gl')
9.makedirs(filename)
作用:遞迴建立目錄,只是目錄,檔案無法建立
filename 只有最後一層資料夾不存在,前幾級必須是已存在的目錄,否則建立失敗
import os
os.makedirs("/Users/lhh/Downloads/idea/l/h/h/w/c/y/wo/ai/ni") #允許建立多級目錄
10.write(path, str)
作用:將 bytes 字串 str 寫入 path 所指的檔案
import os
os.write('/Users/lhh/Downloads/a.txt','miss you')
11.chmod(filename)
作用:改變檔案的許可權
import os
os.chmod('/Users/lhh/Downloads/a.txt')
13.pardir
作用:指代上一級當前目錄
import os
print(os.pardir)
14.name
作用:指代當前使用的 作業系統(包括‘java’,'mac’等)
import os
print(os.name)
15.linesep
作用:當前平臺使用的行終止符(win下為‘\r\n’,linux下為‘\n’)
import os
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)獲取檔案大小import time 模組
Time.ctime() 返回本地時間
os.path.getatime() 檔案或者目錄最後訪問的時間
os.path.getmtime() 最後修改的時間
os.path.getctime() 建立時間
程式碼綜合實操:
#coding=utf-8
import re
import os
import time
#str.split(string)分割字串
#'連線符'.join(list) 將列表組成字串
def change_name(path):
if not os.path.isdir(path) and not os.path.isfile(path):
return False
if os.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' ]
if file_ext in img_ext:
os.rename(path,file_path[ 0 ] + '/' + lists[ 0 ] + '_fc.' + file_ext)
i + = 1 #注意這裡的i是一個陷阱
#或者
#img_ext = 'bmp|jpeg|gif|psd|png|jpg'
#if file_ext in img_ext:
# print('ok---'+file_ext)
elif os.path.isdir(path):
for x in os.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))
相關文章
- python基礎之-sys模組、os模組基本介紹(未完成)Python
- Python技術基礎知識點:OS模組的應用Python
- python的os模組Python
- Python基礎——模組Python
- python os模組Python
- Python OS 模組Python
- Python基礎之模組Python
- Python 內建模組:os模組Python
- os基礎
- python_OS 模組Python
- Python中os模組Python
- Python基礎12(模組與datetime模組)Python
- Python os.path() 模組Python
- Python os模組詳解Python
- [Python]OS模組應用Python
- 【python】os模組 的用法簡介Python
- python–模組之os操作檔案模組Python
- python 基礎筆記——常用模組Python筆記
- python基礎學習16—-模組Python
- python 基礎之模組與包Python
- Python基礎:常用系統模組Python
- python基礎之使用os.system來執行系統命令Python
- Python的常見模組:OS和 time模組介紹Python
- python模組之os.pathPython
- Python之OS模組詳解Python
- Python::OS 模組 -- 程式引數Python
- Python OS模組操作檔案Python
- Python中os.walk()模組Python
- Python基礎之os和資料結構Python資料結構
- #PYTHON# os以及os.path模組介紹Python
- Python基礎(八) 模組的引入與定義Python
- Python基礎(九) 常用模組彙總Python
- Python pip(管理模組工具)基礎用法Python
- Python os模組參考手冊Python
- python中使用os模組的popen方法,去除輸出多餘的空行Python
- Python基礎入門(8)- Python模組和包Python
- Python中常用模組有哪些?Python基礎教程Python
- Python使用os模組、Try語句、pathlib模組判斷檔案是否存在Python