python獲取當前文件路徑
Ⅰ python-pyinstaller、打包後獲取路徑、讀取同路徑的配置文件
使用pyinstaller可以把.py文件打包為.exe可執行文件,命令為:
打包後有兩個文件夾,一個是dist,另外一個是build,可執行文件在dist文件夾裡面,但是會有許多依賴是獨立文件存在
使用-F參數後,打包的可執行文件是一個整體,只有一個.exe文件。
獲取文件路徑的方式有四種,可以在打包成exe文件後,獲取.exe文件的當前路徑
在ide界面的執行結果如下:
在exe文件的執行結果為:我是把exe文件放到桌面運行的。
Ⅱ python 獲取文件夾路徑問題
#encoding:utf-8
importos
printos.path.abspath("test")
使用os.path.abspath方法可以輸出文件夾的絕對路徑。
參數裡面要寫相對路徑,比如腳本和文件夾在同一路徑,就直接寫名字即可。如果文件夾在上一個目錄,就寫成"../test"。
其實從方法名也能看出來,是一個相對路徑轉絕對路徑的方法。
Ⅲ python 怎麼查看當前路徑
先要裝載 os模塊:
import os
print os.getcwd()
或者
print os.path.abspath(os.curdir)
print os.path.abspath('.')
就可以了。
( . 代表當前的路徑,.. 代表當前路徑的上一級路徑。這在UNIX和Windows系統意義是類似的。
例如:
以Winodws系統為例:
當前路徑是F:\Temp, 則 . 的絕對路徑就是F:\Temp
.. 的絕對路徑就是F:\
)
要獲得上級目錄的路徑也很簡單,print os.path.abspath('..')就可以了。
要改變當前路徑,os.chdir(path) 就可以了 path里填要改變到的目錄,例如os.chdir('D:\Program Files')
這樣大部分的文件操作現在是相對於D:\Program Files 來了,例如fobj = open('Hello.txt'),實際會打開D:\Program Files\Hello.txt文件。
不要通過sys.argv[0]獲得當前路徑,那是不正確的。sys.argv[0] 是當前執行的Python腳本的文件名,不一定是當前的路徑。
希望對你有所幫助。
Ⅳ python中怎樣轉到指定目錄
例如使用IDLE編譯python代碼時,可以使用os.chdir轉到指定目錄
import os.
os.getcwd() #get current work direction.
os.chdir('E:\Python_File\Test') #change direction.
在這之後可以直接調用』E:Python_FileTest』目錄下的函數。
或者用庫調用:
import osimport shutil.
alllist=os.listdir(u"D:\notes\python\資料\")for i in alllist:
aa,bb=i.split(".") if 'python' in aa.lower():
oldname= u"D:\notes\python\資料\"+aa+"."+bb.
newname=u"d:\\newname"+aa+"."+bb.
shutil.file(oldname,newname).
(4)python獲取當前文件路徑擴展閱讀:
Python中獲得當前目錄和上級目錄:
獲取當前文件的路徑:
from os import path
d = path.dirname(__file__) #返回當前文件所在的目錄 # __file__ 為當前文件, 若果在ide中運行此行會報錯,可改為 #d = path.dirname('.')。
獲得某個路徑的父級目錄:
parent_path = os.path.dirname(d) #獲得d所在的目錄,即d的父級目錄 parent_path = os.path.dirname(parent_path) ##獲得parent_path所在的目錄即parent_path的父級目錄。
獲得規范的絕對路徑:
abspath = path.abspath(d) #返回d所在目錄規范的絕對路徑。
Ⅳ python文件名獲取文件路徑
概述
使用os.path.abspath()函數來獲取文件絕對路徑
解析
文件目錄結構如下:
os.path.abspath(path)返回path規范化的絕對路徑(但這個路徑不一定是真實的路徑),如果path僅是一個文件名,使用該函數後返回的路徑是當前工作目錄路徑連接改文件名後所組成的新的路徑名。
>>> import os.path
>>> os.path.abspath("a.py")
'C:\Users\Administrator\a.py'
os.path.split(path)將path分割成目錄和文件名二元組返回
>>> os.path.split("C:\Users\Administrator\a.py")
('C:\Users\Administrator', 'a.py')
os.path.dirname(path)返回path的目錄,其實就是os.path.split(path)的第一個元素
>>> os.path.dirname("C:\Users\Administrator\a.py")
'C:\Users\Administrator'
os.path.basename(path)返回path最後的文件名。如果path以/或結尾,就會返回空值。即os.path.split(path)的第二個元素。
>>> os.path.basename("C:\Users\Administrator\a.py")
'a.py'
os.path.commonprefix(list)返回list中所有path共有的最長的路徑,從左向右,相同字元。
os.path.exists(path)如果path存在,返回True;如果path不存在,返回False。
os.path.isabs(path)如果path是絕對路徑,返回True。
os.path.normpath(path)規范path字元串形式(規範文件路徑)
os.path.isfile(path)判斷路徑是否為文件,是返回True,否則返回False
os.path.isdir(path)如果path是一個存在的目錄,返回True,否則返貨False。
os.path.islink(path)是否是鏈接;但如果系統不支持鏈接,則返回False。
Ⅵ python怎麼根據文件名獲得文件路徑
獲取文件路徑可以使用OS模塊,代碼如下:
importos
srcPath=r"WallReference.pdf"
path=os.path.abspath(srcPath)
print"全路徑為:",path
print"路徑名,文件名",os.path.split(path)
導入os模塊;
需要操作的文件;
獲取文件的全路徑,即帶盤符的路徑;
輸出全路徑;
輸出路徑名和文件名;
Ⅶ Python怎樣得到資源文件的絕對路徑
路徑有兩種,相對路徑和絕對路徑。 對於Unix-Like系統來說,絕對路徑就是以/開頭的路徑。 相對路徑就是不以/開頭的路徑。
其實,操作系統中實際只有一種路徑,那就是絕對路徑。 相對路徑,只是程序自己幫我們修改為絕對路徑了。
操作系統的程序運行器利用環境變數,為我們把相對路徑生成為絕對路徑。getcwd()函數用於得到當前進程的當前工作路徑。也就是相對路徑的起始點。
在Python中,可以使用os.chdir函數切換當前工作路徑。
當前工作路徑,是程序執行時所在的路徑。 我們在哪個目錄下執行程序,當前路徑就是哪一個目錄。
我們常常需要在python中執行一些源碼目錄下的文件。如,我們可能需要用eval動態執行一個python源文件。或者一些配置文件到目標系統的路徑下。此時,我們無法知道這些文件的絕對路徑,因為我們不能預知用戶會把我們的程序安裝到哪一個目錄下。
我們也不能依賴於當前工作路徑。因為用戶很可能不在我們的源碼目錄下執行我們的程序。
那麼,此時我們如何得到源碼目錄下文件的絕對路徑呢?
我是這樣做的:
ABSPATH=None
if __name__ == '__main__':
ABSPATH=os.path.abspath(sys.argv[0])
ABSPATH=os.path.dirname(ABSPATH)+"/"
print ABSPATH
Ⅷ python獲取當前路徑
除了os.getcwd()這個方法,還可以通過os.path.abspath('.')的方法獲取當前路徑,你試試。
但是我無法重現你的問題,所以不知道os.path.abspath('.')是否管用。按照你的表述,我寫了下面這個測試程序
==================================
import os
print os.getcwd()
import win32com.client
xlApp = win32com.client.Dispatch('Excel.Application') #打開EXCEL
xlBook = xlApp.Workbooks.Open('c:\\1.xls')
xlSht = xlBook.Worksheets('sheet1')
print str(xlSht.Cells(1,1).Value)
print os.getcwd()
xlBook.Close(SaveChanges=1)
del xlApp
=================================
但是兩次輸出的地址都是一樣的。
是不是你的程序還有那個細節沒講清楚?你可以追問。
希望能幫到你!