Python腳本有一個(gè)毛病,當(dāng)使用相對(duì)路徑時(shí),被另一個(gè)不同目錄下的py文件中導(dǎo)入時(shí),會(huì)報(bào)找不到對(duì)應(yīng)文件的問(wèn)題。感覺(jué)是當(dāng)前工作目錄變成了導(dǎo)入py文件當(dāng)前目錄。如果你有配置文件的讀取操作,然后都放在一個(gè)py文件中,而你又用的是相對(duì)路徑,而且這個(gè)py文件在多個(gè)不同目錄下的py文件中被導(dǎo)入,那就呵呵了。。。還是用絕對(duì)路徑吧。
解決這個(gè)問(wèn)題,可以用絕對(duì)路徑。當(dāng)然是自動(dòng)的絕對(duì)路徑,而不是每次都手動(dòng)給前綴賦值,讓腳本自動(dòng)尋找當(dāng)前文件的絕對(duì)路徑。
此處分享在python下獲取一個(gè)腳本的絕對(duì)路徑的2種方式。
1、__file__變量
abs_file=__file__ print("abs path is %s" %(__file__)) abs_dir=abs_file[:abs_file.rfind("\\")] # windows下用\\分隔路徑,linux下用/分隔路徑
簡(jiǎn)單直接,當(dāng)前py文件的絕對(duì)目錄就有了。首推此方式。
2、os+sys
import os import sys print("abs path is %s" %(os.path.abspath(sys.argv[0])))
在windows下sys.argv[0]直接取出的就是參數(shù),如果執(zhí)行命令傳參用的是絕對(duì)路徑取出的就是帶絕對(duì)路徑,如果傳參用的是相對(duì)路徑,就用得上前面的os.path.abspath()函數(shù)了。
以上就是全部實(shí)例內(nèi)容,感謝大家的閱讀和對(duì)腳本之家的支持。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
