① python3.8 windows 如何获得txt的绝对路径
其实python中文件的绝对路径可以直接复制window的路径,
如:C:.txt 这个路径是没有问题的
但是,其实你的绝对路径正确,但是执行报错,那么就是你文件名的问题,如:
C: 1.txt 这个路径绝对会报错,因为 被转义了;
python就会解析为C: 1.txt 这个时候肯定会报错的
若果你改成下面的写法就不会报错啦(推荐使用此写法“/",可以避免很多异常)
C:/Users/Administrator/Desktop/python/t1.txt
② 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怎样得到资源文件的绝对路径
路径有两种,相对路径和绝对路径。 对于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获取文件所在目录和文件名
python有个魔术变量__file__
#(前后各两个下划线)。这个变量就是当前文件的绝对路径。
再利用Pyhon自带的os模块中的path模块可以处理路径,分理出目录和文件名。以下是示例代码。
import os
folder,filename=os.path.split(__file__)
print(folder,filename)不明白可追问。