python获取当前路径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python获取当前路径相关的知识,希望对你有一定的参考价值。

比如我的项目可执行文件.exe在d:\test\test.exe,我用path=os.getcwd()获取的是d:\test这个路径,但是在项目中有个功能是浏览excel文件,如果这时我浏览了桌面上的excel文件的话,path这个表示路径的变量就变成了桌面了,该怎么获取当前项目的路径才是准确的?

参考技术A 除了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
=================================
但是两次输出的地址都是一样的。
是不是你的程序还有那个细节没讲清楚?你可以追问。

希望能帮到你!追问

真心感谢你这么热心啊,刚注册的没分,我在控制台这样试了下 输出的也是一样的,貌似是因为我调用的别人封装的弹出打开文件的对话框那个功能,调用完这个后,路径就变了。

追答

可能是调用的模块中改变了相对路径,比如其中有os.chdir(path) 这样的方法。
例如os.chdir('D:\Program Files'),这样大部分的文件操作现在是相对于D:\Program Files 进行的。

本回答被提问者采纳
参考技术B 试试

print __file__

python获取当前路径和上一级路径

"""获取当前目录"""
print(os.getcwd())
print(os.path.abspath(os.path.dirname(__file__)))
"""获取上一级目录"""
print(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
print(os.path.abspath(os.path.dirname(os.getcwd())))
print(os.path.abspath(os.path.join(os.getcwd(),"..")))
"""获取上上级目录"""
print(os.path.abspath(os.path.join(os.getcwd(),"../..")))


对应输出结果、

D:Mycloud_uiutil
D:Mycloud_uiutil
D:Mycloud_ui
D:Mycloud_ui
D:Mycloud_ui
D:My
















以上是关于python获取当前路径的主要内容,如果未能解决你的问题,请参考以下文章

python 获取当前文件的绝对路径

python获取当前文件路径以及父文件路径

python获取当前文件路径以及父文件路径

python 获取当前,上级,上上级路径(任何上级路径)

python获取当前路径和上一级路径

Python获取当前文件路径及父文件路径