当前位置:首页 » 编程语言 » python判断路径

python判断路径

发布时间: 2022-07-29 17:53:11

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

  • 可以看出用os.path.exists()方法,判断文件和文件夹是一样。

    其实这种方法还是有个问题,假设你想检查文件“test_data”是否存在,但是当前路径下有个叫“test_data”的文件夹,这样就可能出现误判。为了避免这样的情况,可以这样:

  • 只检查文件

    import os
    os.path.isfile("test-data")
  • 通过这个方法,如果文件”test-data”不存在将返回False,反之返回True。

    即是文件存在,你可能还需要判断文件是否可进行读写操作。

    回到顶部

    判断文件是否可做读写操作

    使用os.access()方法判断文件是否可进行读写操作。

    语法:

    os.access(path, mode)

    path为文件路径,mode为操作模式,有这么几种:

  • os.F_OK: 检查文件是否存在;

  • os.R_OK: 检查文件是否可读;

  • os.W_OK: 检查文件是否可以写入;

  • os.X_OK: 检查文件是否可以执行

  • 该方法通过判断文件路径是否存在和各种访问模式的权限返回True或者False。

  • 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"

  • 回到顶部

    2.使用Try语句

    可以在程序中直接使用open()方法来检查文件是否存在和可读写。

    语法:

    open()

    如果你open的文件不存在,程序会抛出错误,使用try语句来捕获这个错误。

    程序无法访问文件,可能有很多原因:

  • 如果你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."

  • 其实没有必要去这么细致的处理每个异常,上面的这两个异常都是IOError的子类。所以可以将程序简化一下:

  • try:

  • f =open()

  • f.close()except IOError: print "File is not accessible."

  • 使用try语句进行判断,处理所有异常非常简单和优雅的。而且相比其他不需要引入其他外部模块。

    回到顶部

    3. 使用pathlib模块

    pathlib模块在Python3版本中是内建模块,但是在Python2中是需要单独安装三方模块。

    使用pathlib需要先使用文件路径来创建path对象。此路径可以是文件名或目录路径。

  • 检查路径是否存在

  • path = pathlib.Path("path/file")

  • path.exist()

  • 检查路径是否是文件

  • path = pathlib.Path("path/file")

  • path.is_file()

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。

热点内容
ios6G与安卓12G哪个更快 发布:2025-01-24 11:26:22 浏览:827
下线源码 发布:2025-01-24 11:26:22 浏览:523
windows8解压软件 发布:2025-01-24 11:04:41 浏览:559
蓝牙聊天源码 发布:2025-01-24 11:03:13 浏览:124
安卓是什么意思是vivo吗 发布:2025-01-24 11:01:32 浏览:486
悬赏网源码 发布:2025-01-24 10:53:14 浏览:733
c语言时间变量 发布:2025-01-24 10:40:24 浏览:870
ppiandroid 发布:2025-01-24 10:25:50 浏览:1001
儿童压缩机 发布:2025-01-24 10:25:09 浏览:75
苹果的允许访问在哪里 发布:2025-01-24 10:24:32 浏览:32