python中关于os.path.pardir的一些坑

目录
  • 关于os.path.pardir的一些坑
  • python中os.path常用模块
    • 1 BASE_DIR变量
    • 2 os.listdir()的用法
    • 3 如下所示
    • 4 os.path.splitext()

关于os.path.pardir的一些坑

os.path里面,.表示当前目录,..表示上一级目录(os.path.pardir就是表示这个字符串),但是当你偷懒把os.path.abspath(__file__)写成os.path.abspath(".")时,有时运行起来没有问题,有时候有莫名其妙出问题,其实问题出在.并不是文件目录,而是运行python文件时所处的工作目录,通过pthon a/b/c.py运行时就出错了。

同样,如果要获取当前文件的上一级目录,可以

dirpath = os.path.dirname(__file__)
pdirpath = os.path.join(os.path.split(d)[0])

不能为了图省事用os.path.abspath(os.path.pardir)

python中os.path常用模块

1 BASE_DIR变量

BASE_DIR = os.path.dirname(os.path.abspath(__file__))

os.path.dirname()用于返回文件所在的路径,注意不包括文件名。

2 os.listdir()的用法

file_names = os.listdir(img_dir)  #获取数据集的图片名称组成的列表
img_names = list(filter(lambda x: x.endswith(format), file_names))
  • os.listdir()用于返回包含指定文件夹所包含的所有文件或者文件夹下的文件列表
  • filter(function, iterable)用于过符合function判别为true的序列元素,python3需要手动转为list()

3 如下所示

  • os.path.sep:路径分隔符 linux下就用这个了’/’
  • os.path.altsep: 根目录
  • os.path.curdir:当前目录
  • os.path.pardir:父目录
  • os.path.abspath(path):绝对路径
  • os.path.join(): 常用来链接路径
  • os.path.split(path): 把path分为目录和文件两个部分,以列表返回
print os.path.split('/root/pp/f.c')
打印结果:('/root/pp', 'f.c')

4 os.path.splitext()

os.path.splitext(“文件路径”) 分离文件名与扩展名;默认返回(fname,fextension)元组,可做分片操作

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python os.path.isfile 的使用误区详解

    下列这几条语句,看出什么问题了不? for file in os.listdir(path): if os.path.isfile(file) and os.path.splitext(file)[1] == '.txt': #打开txt文件,并提取数据 冥思苦想,没错啊,为啥 os.path.isfile(file)返回的就是false呢. >>> os.listdir(path) ['cg.A.1.txt', 'cg.A.128.txt', 'cg.A.16.txt', 'cg.A.

  • Python中的os.path路径模块中的操作方法总结

    解析路径 路径解析依赖与os中定义的一些变量: os.sep-路径各部分之间的分隔符. os.extsep-文件名与文件扩展名之间的分隔符. os.pardir-路径中表示目录树上一级的部分. os.curdir-路径中当前目录的部分. split()函数将路径分解为两个单独的部分,并返回包含这些结果的tuple.第二个元素是路径的最后部分,地一个元素是其他部分. import os.path for path in [ '/one/two/three', '/one/two/three/',

  • Python2.7版os.path.isdir中文路径返回false的解决方法

    问题背景: 本来想写一个脚本来处理硬盘里的文件,并进行分类处理,但是发现一个问题,使用python内置os模块里的方法出现一些问题,具体的见示例. 主要使用的方法(python 2.7版本) 示例: 在电脑的D盘下建立两个文件夹,并在两个文件夹下分别建立两个文件及目录: a: D:\\test\\test.txt b: D:\测试\测试.txt 分别使用a,b路径来测试os.path的几个方法 #!/usr/bin/env python # -*- coding: utf-8 -*- impor

  • python 标准库原理与用法详解之os.path篇

    os中的path 查看源码会看到,在os.py中有这样几行 if 'posix' in _names: name = 'posix' linesep = '\n' from posix import * #省略若干代码 elif 'nt' in _names: from nt import * try: from nt import _exit __all__.append('_exit') except ImportError: pass import ntpath as path #...

  • python中关于os.path.pardir的一些坑

    目录 关于os.path.pardir的一些坑 python中os.path常用模块 1 BASE_DIR变量 2 os.listdir()的用法 3 如下所示 4 os.path.splitext() 关于os.path.pardir的一些坑 os.path里面,.表示当前目录,..表示上一级目录(os.path.pardir就是表示这个字符串),但是当你偷懒把os.path.abspath(__file__)写成os.path.abspath(".")时,有时运行起来没有问题,有时

  • 对python中的 os.mkdir和os.mkdirs详解

    创建目录 在Python中可以使用os.mkdir()函数创建目录(创建一级目录). 其原型如下所示: os.mkdir(path) 其参数path 为要创建目录的路径. 例如要在D盘下创建hello的目录 >>> import os >>> os.mkdir('d:\hello') 可以使用os.makedirs()函数创建多级目录. 其原型如下所示: os.makedirs(path) 其参数path 为要创建目录的路径. 如在D盘下创建books的目录,books

  • 浅析python3中的os.path.dirname(__file__)的使用

    Python的3.0版本,常被称为Python 3000,或简称Py3k.相对于Python的早期版本,这是一个较大的升级.为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下兼容. os.path.dirname(__file__)的作用是 返回脚本的路径,即文件路径中所在的目录(不包含文件名),如下: import os path = os.path.dirname('D:\test\t.py') print(path) 结果: D:\test Process finished

  • Python常用模块os.path之文件及路径操作方法

    以下是 os.path 模块的几种常用方法: 方法 说明 os.path.abspath(path) 返回绝对路径 os.path.basename(path) 返回文件名 os.path.commonprefix(list) 返回list(多个路径)中,所有path共有的最长的路径 os.path.dirname(path) 返回文件路径 os.path.exists(path) 如果路径 path 存在,返回 True:如果路径 path 不存在,返回 False. os.path.lexi

  • 对python中的os.getpid()和os.fork()函数详解

    如下所示: import os import sys import time processNmae = 'parent' print "Program executing ntpid:%d,processNmae:%s"%(os.gitpid(),processNmae) #attempt to fork child process try: forkPid = os.fork() except OSError: sys.exit("Unable to create new

  • 详解python路径拼接os.path.join()函数的用法

    os.path.join()函数:连接两个或更多的路径名组件 1.如果各组件名首字母不包含'/',则函数会自动加上 demo1 import os Path1 = 'home' Path2 = 'develop' Path3 = 'code' Path10 = Path1 + Path2 + Path3 Path20 = os.path.join(Path1,Path2,Path3) print ('Path10 = ',Path10) print ('Path20 = ',Path20) 输出

  • 浅析Python中return和finally共同挖的坑

    前言 本文主要给大家介绍了在Python中return和finally共同存在的坑,以及填坑经验,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 初识 return 相信每一个用过Python函数的童鞋, 肯定会用过return语句, return顾名思义, 就是用来返回值给调用者, 例如: def test(): a = 2 return a s = test() print s # 输出结果 2 对于上面的结果, 相信大家都不会感到意外, 那么加大点难度, 如果在retur

  • 在Python中合并字典模块ChainMap的隐藏坑【推荐】

    在Python中,当我们有两个字典需要合并的时候,可以使用字典的 update 方法,例如: a = {'a': 1, 'b': 2} b = {'x': 3, 'y': 4} a.update(b) print(a) 运行效果如下图所示: 然而,这个方法有一个问题--它会改变其中一个字典.如果我们不想改变原有的两个字典,那么我们必需要单独再创建一个字典: a = {'a': 1, 'b': 2} b = {'x': 3, 'y': 4} c = dict(a) c.update(b) prin

  • Python标准库os.path包、glob包使用实例

    os.path包 os.path包主要用于处理字符串路径,比如'/home/zikong/doc/file.doc',提取出有用的信息. 复制代码 代码如下: import os.path path = '/home/zikong/doc/file.doc' print(os.path.basename(path))    # 查询路径中包含的文件名 print(os.path.dirname(path))     # 查询路径中包含的目录 info = os.path.split(path) 

随机推荐