Python/ target=_blank class=infotextkey>Python 標(biāo)準(zhǔn)庫中的 os 模塊提供了訪問操作系統(tǒng)功能的接口,包括文件和目錄操作、進(jìn)程管理、環(huán)境變量、時間等功能。以下是 os 模塊的主要功能及其應(yīng)用場景:
- 獲取當(dāng)前工作目錄:通過 os.getcwd() 函數(shù)獲取當(dāng)前所在的工作目錄。
import os
cwd = os.getcwd()
print(cwd)
- 改變工作目錄:通過 os.chdir() 函數(shù)更改當(dāng)前工作目錄。
import os
os.chdir('/home/user/')
- 列出指定目錄下的文件和子目錄:通過 os.listdir() 函數(shù)列出指定目錄下的所有文件和子目錄。
import os
files = os.listdir('/home/user/')
print(files)
- 創(chuàng)建新目錄:通過 os.mkdir() 函數(shù)創(chuàng)建新的目錄。
import os
os.mkdir('/home/user/my_folder')
- 遞歸地創(chuàng)建多層目錄:通過 os.makedirs() 函數(shù)遞歸地創(chuàng)建新的目錄。
import os
os.makedirs('/home/user/my_folder/sub_folder')
- 移除指定文件或目錄:通過 os.remove() 和 os.rmdir() 函數(shù)分別移除指定的文件和目錄。
import os
os.remove('/home/user/my_file.txt')
os.rmdir('/home/user/my_folder')
- 遞歸地移除指定目錄及其下所有文件和子目錄:通過 shutil.rmtree() 函數(shù)遞歸地移除指定目錄及其下所有文件和子目錄。
import shutil
shutil.rmtree('/home/user/my_folder')
- 判斷指定路徑是否為文件或目錄:通過 os.path.isfile() 和 os.path.isdir() 函數(shù)分別判斷指定路徑是否為文件或目錄。
import os
path = '/home/user/my_file.txt'
if os.path.isfile(path):
print('This is a file.')
elif os.path.isdir(path):
print('This is a directory.')
- 組合多個路徑成為一個完整的路徑:通過 os.path.join() 函數(shù)將多個路徑組合成一個完整的路徑。
import os
path = os.path.join('/home', 'user', 'my_folder', 'my_file.txt')
print(path)
- 獲取文件或目錄的絕對路徑:通過 os.path.abspath() 函數(shù)獲得指定路徑的絕對路徑。
import os
path = 'my_folder/my_file.txt'
abs_path = os.path.abspath(path)
print(abs_path)
- 獲取文件或目錄的基本名稱:通過 os.path.basename() 函數(shù)獲取指定路徑的基本名稱(不包括路徑)。
import os
path = '/home/user/my_folder/my_file.txt'
basename = os.path.basename(path)
print(basename)
- 獲取文件或目錄的上層目錄:通過 os.path.dirname() 函數(shù)獲取指定路徑的上層目錄。
import os
path = '/home/user/my_folder/my_file.txt'
dirname = os.path.dirname(path)
print(dirname)
- 判斷文件或目錄是否存在:通過 os.path.exists() 函數(shù)判斷指定路徑的文件或目錄是否存在。
import os
path = '/home/user/my_folder/my_file.txt'
if os.path.exists(path):
print('This file exists.')
else:
print('This file does not exist.')
- 獲取文件或目錄的大小:通過 os.path.getsize() 函數(shù)獲取指定文件或目錄的大小。
import os
path = '/home/user/my_file.txt'
size = os.path.getsize(path)
print(size)
- 獲取文件或目錄的創(chuàng)建時間和最后修改時間:通過 os.path.getctime() 和 os.path.getmtime() 函數(shù)分別獲取指定文件或目錄的創(chuàng)建時間和最后修改時間。
import os
import time
path = '/home/user/my_file.txt'
ctime = os.path.getctime(path)
mtime = os.path.getmtime(path)
print('Created:', time.ctime(ctime))
print('Modified:', time.ctime(mtime))
- 檢查指定路徑是否為絕對路徑:通過 os.path.isabs() 函數(shù)檢查指定路徑是否為絕對路徑。
import os
path = '/home/my_folder/my_file.txt'
if os.path.isabs(path):
print('This is an absolute path.')
else:
print('This is a relative path.')
- 將路徑拆分為目錄和文件名:通過 os.path.split() 函數(shù)將路徑拆分為目錄和文件名兩部分。
import os
path = '/home/user/my_folder/my_file.txt'
dirname, basename = os.path.split(path)
print('Directory:', dirname)
print('Filename:', basename)
- 執(zhí)行系統(tǒng)命令:通過 os.system() 函數(shù)執(zhí)行系統(tǒng)命令。
import os
os.system('ls')
- 獲取環(huán)境變量:通過 os.environ 字典獲取當(dāng)前環(huán)境的所有環(huán)境變量。
import os
env = os.environ
print(env)
- 獲取操作系統(tǒng)類型和版本號:通過 platform.system() 和 platform.version() 函數(shù)獲取當(dāng)前操作系統(tǒng)類型和版本號。
import platform
system = platform.system()
version = platform.version()
print('System:', system)
print('Version:', version)
注意事項:
- 某些操作需要管理員權(quán)限才能執(zhí)行,需謹(jǐn)慎使用。
- 需要在程序中處理路徑分隔符的兼容性,根據(jù)不同的操作系統(tǒng)使用不同的分隔符。
- 在創(chuàng)建和刪除目錄或文件時,必須小心謹(jǐn)慎,確保不會意外刪除重要數(shù)據(jù)。
整理不易歡迎點贊轉(zhuǎn)發(fā)收藏,關(guān)注我每天分享運維小知識。