python 文件相对路径,python打开文件的路径
在介绍绝对路径和相对路径之前,有必要知道当前的工作目录是什么。
当前的工作目录是什么?
计算机上运行的每个程序都有一个“当前工作目录”(或cwd)。所有不是从根文件夹开始的文件名或路径都假定在当前工作目录中。
注意,虽然文件夹是目录的更新名称,但当前工作目录(或当前目录)是一个标准术语,不存在当前工作文件夹这种东西。
在Python中,当前工作路径的字符串可以通过使用os.getcwd()函数获得,也可以通过使用os.chdir()来改变。例如,在交互式环境中输入以下代码:
导入操作系统
os.getcwd()
c:\ \用户\ \马蒙\ \桌面
OS . chdir( C:\ \ Windows \ \ System32 )
os.getcwd()
C:\\Windows\\System32
可以看到,原来的当前工作路径是 C:\ \ Users \ \马蒙\\Desktop (也就是桌面),通过os.chdir()函数已经改成了 C:\\Windows\\System32 。
需要注意的是,如果用os.chdir()修改的工作目录不存在,Python解释器会报错,例如:
os.chdir(C:\\error )
回溯(最近一次呼叫):
文件“”中的第1行
os.chdir(C:\\error )
找不到错误:[WinError 2]系统找不到指定的文件。 C:\ \错误
在了解了当前工作目录的具体含义后,我们将介绍绝对路径和相对路径各自的含义和用法。
什么是绝对路径和相对路径?
有两种方法可以指定文件所在的路径,即:
绝对路径:总是从根文件夹开始,在Window系统中以盘符(C:D:)作为根文件夹,在OS X或Linux系统中以/作为根文件夹。
相对路径:指文件相对于当前工作目录的位置。例如,当前工作目录是“C:\Windows\System32”。如果文件demo.txt位于此System32文件夹中,则demo.txt的相对路径表示为。\demo.txt (其中。\表示当前目录)。
当使用相对路径来指示文件的位置时,\除了表示当前目录外,还常用于表示当前目录的父目录。
图1相对路径和绝对路径
以图1为例。如果当前工作目录设置为C:\bacon,这些文件夹和文件的相对路径和绝对路径将与图中右侧显示的相对应。
Python处理绝对和相对路径。
Python os.path模块提供了一些函数,可以实现绝对路径和相对路径之间的转换,检查给定路径是否为绝对路径,比如:
调用os.path.abspath(path)会返回path参数的绝对路径的字符串,这是一种将相对路径转换为绝对路径的简单方法。
调用os.path.isabs(path),如果参数是绝对路径,则返回True,如果参数是相对路径,则返回False。
调用os.path.relpath(path,start)将返回一串从起始路径到路径的相对路径。如果没有提供start,则使用当前工作目录作为开始路径。
调用os.path.dirname(path)将返回一个字符串,该字符串包含path参数中最后一个斜杠之前的所有内容;调用os.path.basename(path)将返回一个字符串,该字符串包含path参数中最后一个斜杠之后的所有内容。
在互动环境中尝试上述功能:
os.getcwd()
C:\\Windows\\System32
os.path.abspath( . ))
C:\\Windows\\System32
os.path.abspath(。\ \ Scripts’)
C:\\Windows\\System32\\Scripts
os.path.isabs( . )
错误的
os.path.isabs(os.path.abspath( . )))
真实的
os.path.relpath(C:\\Windows , C:\\ )
视窗
os.path.relpath(C:\\Windows , C:\\spam\\eggs )
.\\.\\Windows
path= C:\ \ Windows \ \ System32 \ \ calc . exe
os.path.basename(路径)
calc.exe
os.path.dirname(路径)
C:\\Windows\\System32
注意,由于读者的系统文件和文件夹可能与我的不同,因此读者不必完全按照本节中的示例,根据自己的系统环境对本节中的代码进行适当的调整。
此外,如果需要路径的目录名和基名,可以调用os.path.split()来获取这两个字符串的元组,例如:
path= C:\ \ Windows \ \ System32 \ \ calc . exe
操作系统.路径.分割(路径)
( C:\\Windows\\System32 , calc.exe )
请注意,您可以调用os.path.dirname()和os.path.basename()并将它们的返回值放在一个元组中以获得相同的元组。但是使用os.path.split()无疑是一个很好的捷径。
同时,如果提供的路径不存在,许多Python函数将崩溃并报告错误,但幸运的是,os.path模块提供了以下函数来检测给定的路径是否存在,以及它是文件还是文件夹:
如果path参数指向的文件或文件夹存在,调用os.path.exists(path)将返回True,否则返回False。
如果path参数存在并且是文件,调用os.path.isfile(path)将返回True,否则返回False。
如果path参数存在并且是文件夹,调用os.path.isdir(path)将返回True,否则返回False。
以下是在互动环境中尝试这些功能的结果:
os.path.exists(C:\\Windows )
真实的
OS . path . exists( C:\ \ some _ maked _ up _ folder )
错误的
OS . path . isdir( C:\ \ Windows \ \ System32 )
真实的
OS . path . is file( C:\ \ Windows \ \ System32 )
错误的
OS . path . isdir( C:\ \ Windows \ \ System32 \ \ calc . exe )
错误的
OS . path . is file( C:\ \ Windows \ \ System32 \ \ calc . exe )
真实的
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。