溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python中一鮮為人知的os操作

發(fā)布時(shí)間:2020-11-06 14:53:19 來(lái)源:億速云 閱讀:137 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

本篇文章給大家分享的是有關(guān)Python中一鮮為人知的os操作,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

Python自動(dòng)的os庫(kù)是和操作系統(tǒng)交互的庫(kù),常用的操作包括文件/目錄操作,路徑操作,環(huán)境變量操作和執(zhí)行系統(tǒng)命令等。

文件/目錄操作

  • 獲取當(dāng)前目錄(pwd): os.getcwd()
  • 切換目錄(cd): os.chdir('/usr/local/')
  • 列出目錄所有文件(ls):os.listdir('/usr/local/')
  • 創(chuàng)建目錄(mkdir):os.makedirs('/usr/local/tmp')
  • 刪除目錄(rmdir):os.removedirs('/usr/local/tmp') # 只能刪除空目錄,遞歸刪除可以使用import shutil;shutil.rmtree('/usr/local/tmp')
  • 刪除文件(rm):os.remove('/usr/local/a.txt')
  • 遞歸遍歷目錄及子目錄:os.walk()

示例:遍歷/usr/local目錄及子下所有文件和目錄,并組裝出每個(gè)文件完整的路徑名

import os
for root, dirs, files in os.walk("/usr/local", topdown=False):
 for name in files:
  print('文件:', os.path.join(root, name))
 for name in dirs:
  print('目錄:', os.path.join(root, name))

路徑操作

  • 當(dāng)前Python腳本文件:__file__
  • 獲取文件所在路徑:os.path.basename(__file__) # 不含當(dāng)前文件名
  • 獲取文件絕對(duì)路徑:os.path.abspath(__file__) # 包含當(dāng)前文件名
  • 獲取所在目錄路徑:os.path.dirname(__file__)
  • 分割路徑和文件名:os.path.split('/usr/local/a.txt') # 得到一個(gè)[路徑,文件名]的列表
  • 分割文件名和擴(kuò)展名:os.path.splitext('a.txt') # 得到['a', '.txt']
  • 判斷路徑是否存在:os.path.exists('/usr/local/a.txt')
  • 判斷路徑是否文件:os.path.isfile('/usr/local/a.txt')
  • 判斷路徑是否目錄:os.path.isdir('/usr/local/a.txt')
  • 組裝路徑:os.path.join('/usr', 'local', 'a.txt')

示例:獲取項(xiàng)目根路徑和報(bào)告文件路徑
假設(shè)項(xiàng)目結(jié)構(gòu)如下

project/
 data'
 reports/
 report.html
 testcases/
 config.py
 run.py

在run.py中獲取項(xiàng)目的路徑和report.html的路徑

# filename: run.py
import os

base_dir = os.path.dirname(__file__) # __file__是run.py文件,os.path.dirname獲取到其所在的目錄project即項(xiàng)目根路徑
report_file = os.path.join(base_dir, 'reports', 'report.html') # 使用系統(tǒng)路徑分隔符('\')連接項(xiàng)目根目錄base_dir和'reports'及'report.html'得到報(bào)告路徑
print(report_file)

環(huán)境變量操作

  • 獲取環(huán)境變量:os.environ.get('PATH')或os.getenv('PATH')
  • 設(shè)置環(huán)境變量:os.environ['MYSQL_PWD']='123456'

執(zhí)行系統(tǒng)命令

執(zhí)行系統(tǒng)命令:os.system("jmeter -n -t /usr/local/demo.jmx") # 無(wú)法獲取屏幕輸出的信息,相要獲取運(yùn)行屏幕信息,可以使用subprocess

以上就是Python中一鮮為人知的os操作,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI