日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python简述文件目录相对路径_【Python】 配置文件相对路径软件自动执行的工作目录...

發(fā)布時(shí)間:2023/12/19 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python简述文件目录相对路径_【Python】 配置文件相对路径软件自动执行的工作目录... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天對(duì)監(jiān)控腳本做了一些變更,然后突然發(fā)現(xiàn)監(jiān)控全部都失效了。。排查了半天問(wèn)題仍然不知所蹤。最終發(fā)現(xiàn)居然是一個(gè)踩過(guò)好幾次的老坑。。

就是腳本內(nèi)寫(xiě)的配置文件為了調(diào)試方便寫(xiě)成了相對(duì)路徑,但是在上線時(shí)沒(méi)有意識(shí)到軟件自動(dòng)執(zhí)行(比如Zabbix的externalcheck,雖然所有腳本都可以放在統(tǒng)一的目錄下,給人一種這個(gè)目錄就是zabbix執(zhí)行外部檢查時(shí)的工作目錄的錯(cuò)覺(jué),但是實(shí)際上并不是。。)時(shí)自動(dòng)執(zhí)行的工作目錄并不一定是當(dāng)前目錄。介于這個(gè)坑已經(jīng)踩過(guò)多次,下面給出實(shí)例和解決辦法:

importConfigParser

cf=ConfigParser()

CONF_FILE= 'server.conf' #在本地寫(xiě)腳本時(shí)為了調(diào)試方便,在腳本同目錄下創(chuàng)建了一個(gè)配置文件進(jìn)行配置

cf.read(CONF_FILE)#下面對(duì)CONF_FILE做一些處理

#同樣的腳本,讓zabbix自己去跑就報(bào)錯(cuò)了???然后登上目錄自己手動(dòng)執(zhí)行,又沒(méi)問(wèn)題???就是路徑的鍋!#把路徑改成絕對(duì)路徑就OK了

CONF_FILE = '/usr/lib/zabbix/externalscripts/server.conf'

仔細(xì)想一下,這個(gè)鍋其實(shí)也是ConfigParser這個(gè)模塊本身的一個(gè)小“缺陷”吧。因?yàn)镃onfigParser.ConfigParser().read(path)的時(shí)候,即便path不存在也不會(huì)報(bào)錯(cuò)。如果報(bào)錯(cuò)了的話,我們就可以很快定位問(wèn)題了。所以切記切記,用ConfigParser之前一定要os.path.isfile(path)檢查一下!

如果想要保留配置文件和腳本在移植上的靈活性,可以這樣搞:

work_dir = os.path.dirname(os.path.abspath(__file__))

CONF_FILE= os.path.join(work_dir,'server.conf')#這樣就既可以保證CONF_FILE的絕對(duì)路徑,又不會(huì)寫(xiě)死了。

類(lèi)似的這種操作寫(xiě)過(guò)很多次,就不再重復(fù)了。

■  不要把配置文件驗(yàn)證等鋪墊性工作放到if __name__ == "__main__"外面

今天又遇到這個(gè)坑了【抓狂】。。。。。。總結(jié)一下經(jīng)驗(yàn),發(fā)現(xiàn)配置文件驗(yàn)證、腳本參數(shù)接受(sys.argv)這些工作 不要放在if __name__ == '__main__'的外面。在調(diào)試的時(shí)候可能報(bào)錯(cuò)可以直接受到信息,但是在上線之后,其他程序調(diào)用這個(gè)腳本時(shí)可能并不會(huì)把報(bào)錯(cuò)信息體現(xiàn)出來(lái),然后我想加個(gè)日志功能吧,雖然考慮了所有裸在外面的語(yǔ)句的錯(cuò)誤捕獲,又忽略了logging.basicConfig這個(gè)語(yǔ)句本身又是裸的,更啃爹的是這個(gè)語(yǔ)句也涉及到了配置文件,又寫(xiě)了一個(gè)相對(duì)路徑,所以加了日志功能但也加了個(gè)bug【捂臉】。。。。。總之這條謹(jǐn)記吧。。以上。

總結(jié)

以上是生活随笔為你收集整理的python简述文件目录相对路径_【Python】 配置文件相对路径软件自动执行的工作目录...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。