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
=================================
但是两次输出的地址都是一样的。
是不是你的程序还有那个细节没讲清楚?你可以追问。
希望能帮到你!