python判断路径
1. python怎么判断文件是否存在
正文
通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错。所以最好在做任何操作之前,先判断文件是否存在。
这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块、Try语句、pathlib模块。
回到顶部
1.使用os模块
os模块中的os.path.exists()方法用于检验文件是否存在。
判断文件是否存在
- import os
- os.path.exists(test_file.txt)#Trueos.path.exists(no_exist_file.txt)#False
判断文件夹是否存在
- import os
- os.path.exists(test_dir)#Trueos.path.exists(no_exist_dir)#False
只检查文件
import os
os.path.isfile("test-data")os.F_OK: 检查文件是否存在;
os.R_OK: 检查文件是否可读;
os.W_OK: 检查文件是否可以写入;
os.X_OK: 检查文件是否可以执行
- import osif os.access("/file/path/foo.txt", os.F_OK): print "Given file path is exist."if os.access("/file/path/foo.txt", os.R_OK): print "File is accessible to read"if os.access("/file/path/foo.txt", os.W_OK): print "File is accessible to write"if os.access("/file/path/foo.txt", os.X_OK): print "File is accessible to execute"
如果你open的文件不存在,将抛出一个FileNotFoundError的异常;
文件存在,但是没有权限访问,会抛出一个PersmissionError的异常。
- try:
- f =open()
- f.close()except FileNotFoundError: print "File is not found."except PersmissionError: print "You don't have permission to access this file."
- try:
- f =open()
- f.close()except IOError: print "File is not accessible."
检查路径是否存在
- path = pathlib.Path("path/file")
- path.exist()
检查路径是否是文件
- path = pathlib.Path("path/file")
- path.is_file()
可以看出用os.path.exists()方法,判断文件和文件夹是一样。
其实这种方法还是有个问题,假设你想检查文件“test_data”是否存在,但是当前路径下有个叫“test_data”的文件夹,这样就可能出现误判。为了避免这样的情况,可以这样:
通过这个方法,如果文件”test-data”不存在将返回False,反之返回True。
即是文件存在,你可能还需要判断文件是否可进行读写操作。
回到顶部
判断文件是否可做读写操作
使用os.access()方法判断文件是否可进行读写操作。
语法:
os.access(path, mode)
path为文件路径,mode为操作模式,有这么几种:
该方法通过判断文件路径是否存在和各种访问模式的权限返回True或者False。
回到顶部
2.使用Try语句
可以在程序中直接使用open()方法来检查文件是否存在和可读写。
语法:
open()
如果你open的文件不存在,程序会抛出错误,使用try语句来捕获这个错误。
程序无法访问文件,可能有很多原因:
所以可以使用下面的代码来判断文件是否存在:
其实没有必要去这么细致的处理每个异常,上面的这两个异常都是IOError的子类。所以可以将程序简化一下:
使用try语句进行判断,处理所有异常非常简单和优雅的。而且相比其他不需要引入其他外部模块。
回到顶部
3. 使用pathlib模块
pathlib模块在Python3版本中是内建模块,但是在Python2中是需要单独安装三方模块。
使用pathlib需要先使用文件路径来创建path对象。此路径可以是文件名或目录路径。
2. Python使用判断,检查是都存在1.TXT文件,如果不存在,返回文字不存在!怎么写这段代码
检查文件是否存在的方法,在Python3文件操作中经常被用到,因为,只有文件存在,我们才可以对文件进行下一步处理,那么,常用的检查文件存在的方法有哪些呢?以下是Python3检查文件是否存在的几种方法。
一、 使用os库
os库方法可检查文件是否存在,存在返回Ture,不存在返回False,且不需要打开文件。
1. os.path.isfile文件检查
import os.path
filename='/oldboye.com/file.txt'
os.path.isfile(filename)
2. os.path.exists文件夹检查
import os
a_path='/oldboye.com/'
if os.path.exists(a_path):
#do something
3. os.access文件权限检查
import os
filename='/oldboye.com/file.txt'
if os.path.isfile(filename) and os.access(filename, os.R_OK):
#do something
二、使用pathlib库
使用pathlib库也是一种检查文件是否存在的方法,且从Python3.4开始,Python已经把pathlib加入了标准库,无需安装,即可直接使用!
1. 检查文件是否存在
from pathlib import Path
my_file = Path("/oldboye.com/file.txt")
if my_file.is_file():
# file exists
2. 检查文件夹是否存在
from pathlib import Path
my_file = Path("/oldboye.com/file.txt")
if my_file.is_dir():
# directory exists
3. 文件或文件夹是否存在
from pathlib import Path
my_file = Path("/oldboye.com/file.txt")
if my_file.exists():
# path exists
以上列举Python3中检查文件和文件夹的两种常用的方法,适用于Python3相关版本,其他版本略有不同,可以根据实际情况进行设置!
3. 怎样使用 Python 来判断一个路径是否存在判
需要导入OS模块。
判断C:有没有test目录。
如果不存在则建立一个,代码如下:
importos
ifnotos.path.exists(r"C: est"):
os.mkdir(r"C: est")
4. 求一个python的路径对比方法,判断路径是否相等,是否包含
#coding=utf-8
'''
Createdon2014-11-17
@author:Neo
'''
#0:equal
#1:path1issubfolderofpath2
#-1:path2issubfolderofpath1
#2:unrelated
defcomparePath(path1,path2):
ifnotpath1ornotpath1:
return2
path1Len=len(path1)
path2Len=len(path2)
ifpath1Len>path2Len:
longPath=path1
shortPath=path2
cmpFator=1
else:
longPath=path2
shortPath=path1
cmpFator=-1
shortPathLen=len(shortPath)
longPathLen=len(longPath)
i=0
j=0
whilei<shortPathLenandj<longPathLen:
c1=shortPath[i]
c2=longPath[j]
ifisSlash(c1):
ifnotisSlash(c2):
return2
whilei<shortPathLenandisSlash(shortPath[i]):
i+=1
whilej<longPathLenandisSlash(longPath[j]):
j+=1
else:
ifc1!=c2:
ifi==shortPathLen:
returncmpFator
else:
return2
i+=1
j+=1
ifi==shortPathLen:
ifj==longPathLen:
return0
whilej<longPathLen:
ifnotisSlash(longPath[j]):
returncmpFator
j+=1
return0
else:
return2
defisSlash(c):
returnc=='/'orc=='\'
printcomparePath('C:/','C:/')
printcomparePath('C:/','C:/Python27')
printcomparePath('C:/Python27','C:')
printcomparePath('C:/Python27','D:')
result:
0
-1
1
2
5. 怎样查看python安装路径
方法如下:
一、linux查看python安装位置。
有时我们需要查看python的安装位置,好安装第三方库,linux可以先python进入python cmd,然后输入【import sys】【print sys.path】,即可打印所有python路径。
二、想要查看ubuntu中安装的python路径。
方法一:whereis python
方法二:which python
五、sys.executable是当前Python解释器(或者其他Python实现)的路径去掉后面一个路径分隔符(Windows下是'')后的部分即可>>> import sys>>> path = sys.executable>>> print pathC:Python25pythonw.exe>>> folder = path[ 0 : path.rfind( os.sep ) ]>>> print folderC:Python25>>>。
6. 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
通过拿到第一个参数的绝对路径,我们就知道了程序所在的绝对路径,我们就能够使用ABSPATH这个全局变量组装出 我们源码目录下的任意一个文件的绝对路径了!
7. windows怎么察看 python 的安装路径
查看python的安装路径分为两种情况:
一、想要查看ubuntu中安装的Python路径
方法一:whereis python
8. python中的绝对路径和相对路径均如何理解呢
Python中的绝对路径和其他语言并无区别。
Python中的相对路径则有所不同,一般语言的相对路径的父目录指的是文件所在目录,而Python的相对路径的父目录指的是当前脚本执行目录。举个简单的例子:我有一个放在/xyz/bin目录下的脚本 test.py。那么他的绝对路径就是/xyz/bin,如果你在你的test脚本中使用了相对路径的话,那么test.py中的相对路径是根据脚本执行时你的当前目录所决定的。比如,如果你在/xyz/bin目录下还有一个文件test.txt,这是test.py中所使用的文件,那么在/xyz/bin目录下执行./test.py是没有问题的。但是如果你在其他目录执行python /xyz/bin/test.py,如果其他目录没有test.txt文件,那么必然会报错。因为此时相对路径的父目录已经不是/xyz/bin了,自然找不到/xyz/bin/test.txt。