理解Python中的绝对路径和相对路径

本文介绍了Python中的绝对路劲和相对路径,分享给大家,也给自己留个笔记

1、绝对路径

 os.path.abspath("文件名"):

显示的是一个文件的绝对路劲

eg:

>>> import os

>>> os.chdir("E:\\PycharmProjects\\odycmdb\\odycmdb")

>>> os.listdir()

['settings.py', 'urls.py', 'wsgi.py', '__init__.py', '__pycache__']

>>> os.path.abspath("settings.py")

'E:\\PycharmProjects\\odycmdb\\odycmdb\\settings.py'

2、相对路径

os.path.dirname("文件名"):

显示的是一个文件的相对路径

eg:

>>> import os

>>> os.chdir("E:\\PycharmProjects\\odycmdb\\odycmdb")

>>> os.listdir()

['settings.py', 'urls.py', 'wsgi.py', '__init__.py', '__pycache__']

>>> os.path.dirname("settings.py")

3、总结

一般情况下,绝对路劲函数和相对路径函数是结合起来用的,特别是在多个文件包之前相互导入

①os.path.dirname(os.path.abspath("文件名")): 表示获取当前文件夹的所在的目录

eg:

>>> import os

>>> os.chdir("E:\\PycharmProjects\\odycmdb\\odycmdb")

>>> os.listdir()

['settings.py', 'urls.py', 'wsgi.py', '__init__.py', '__pycache__']

>>> os.path.abspath("settings.py")

'E:\\PycharmProjects\\odycmdb\\odycmdb\\settings.py'

>>> os.path.dirname(os.path.abspath("settings.py"))

'E:\\PycharmProjects\\odycmdb\\odycmdb'

②os.path.dirname(os.path.dirname(os.path.abspath("文件名"))): 表示获取当前文件夹上一层目录

eg:

>>> import os

>>> os.chdir("E:\\PycharmProjects\\odycmdb\\odycmdb")

>>> os.listdir()

['settings.py', 'urls.py', 'wsgi.py', '__init__.py', '__pycache__']

>>> os.path.abspath("settings.py")

'E:\\PycharmProjects\\odycmdb\\odycmdb\\settings.py'

>>> os.path.dirname(os.path.dirname(os.path.abspath("settings.py")))

'E:\\PycharmProjects\\odycmdb'

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 查看Python安装路径以及安装包路径小技巧

    特别是linux系统,装了多个python,有时候找不到python的绝对路径,有时候装了个django,又找不到django安装到哪里了..当然查看的方法有很多种,这里列出几种,供没有经验的人参考下. 复制代码 代码如下: G:\code\moniter>python -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())" C:\Python27\Lib\site-package

  • python中os操作文件及文件路径实例汇总

    本文实例讲述了python中os操作文件及文件路径的方法.分享给大家供大家参考.具体分析如下: python获取文件上一级目录:取文件所在目录的上一级目录 复制代码 代码如下: os.path.abspath(os.path.join(os.path.dirname('settings.py'),os.path.pardir)) os.path.pardir是父目录,os.path.abspath是绝对路径 举例具体看一下输出: 复制代码 代码如下: print os.path.dirname(

  • Python3实现从指定路径查找文件的方法

    本文实例讲述了Python3实现从指定路径查找文件的方法.分享给大家供大家参考.具体实现方法如下: 这里给定一个搜索路径,根据这个路径请求和请求的文件名,找到第一个符合要求的文件 import os def search_file(file_name, search_path, pathsep = os.pathsep): for path in search_path.split(pathsep): candidate = os.path.join(path, file_name) if os

  • python根据路径导入模块的方法

    本文实例讲述了python根据路径导入模块的方法,分享给大家供大家参考.具体方法如下: 常规做法如下: import sys sys.path.append('C:/full/path') from foo import util,bar 而要直接通过路径 import imp util = imp.load_source('util', 'C:/full/path/foo/util.py') 使用时使用util.method,此时并没有定义method method = util.method

  • Python文件读取的3种方法及路径转义

    1.文件的读取和显示 方法1: 复制代码 代码如下: f=open(r'G:\2.txt')  print f.read()  f.close() 方法2:   复制代码 代码如下: try:      t=open(r'G:\2.txt')      print t.read()  finally:      if t:         t.close() 方法3: 复制代码 代码如下: with open(r'g:\2.txt') as g:      for line in g:     

  • Python引用模块和查找模块路径

    模块间相互独立相互引用是任何一种编程语言的基础能力.对于"模块"这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义.对于编译型的语言,比如C#中的一个.cs文件,Java中的一个.java或者编译后的.class文件可以认为是一个模块(但常常不表述为模块):对于解释型的语言会更加直观些,比如PHP的.php文件,在Python中就是.py文件可以认为是一个模块.在"模块"之上有"包",主要是

  • python 文件和路径操作函数小结

    1: os.listdir(path) //path为目录 功能相当于在path目录下执行dir命令,返回为list类型 print os.listdir('..') 2: os.path.walk(path,visit,arg) path :是将要遍历的目录 visit :是一个函数指针,函数圆形为: callback(arg,dir,fileList) 其中arg为为传给walk的arg , dir是path下的一个目录,fileList为dir下的文件和目录组成的list, arg:传给v

  • python获取指定路径下所有指定后缀文件的方法

    本文实例讲述了python获取指定路径下所有指定后缀文件的方法.分享给大家供大家参考.具体实现方法如下: # 获取指定路径下所有指定后缀的文件 # dir 指定路径 # ext 指定后缀,链表&不需要带点 或者不指定.例子:['xml', 'java'] def GetFileFromThisRootDir(dir,ext = None): allfiles = [] needExtFilter = (ext != None) for root,dirs,files in os.walk(dir

  • 深入理解python中函数传递参数是值传递还是引用传递

    目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是"传对象引用"的方式.实际上,这种方式相当于传值和传引用的一种综合.如果函数收到的是一个可变对象(比如字典 或者列表)的引用,就能修改对象的原始值--相当于通过"传引用"来传递对象.如果函数收到的是一个不可变对象(比如数字.字符或者元组)的引用,就不能 直接修改原始对象--相当于通过"传值"来传递对象. 你可以在很多讨论该问题

  • 深入理解python中的浅拷贝和深拷贝

    在讲什么是深浅拷贝之前,我们先来看这样一个现象: a = ['scolia', 123, [], ] b = a[:] b[2].append(666) print a print b 为什么我只对b进行修改,却影响到了a呢?看过我在之前的文章中就说过:序列中保存的都是内存的引用. 所以,当我们通过b去修改里面的空列表的时候,其实就是修改内存中的同一个对象,所以会影响到a. a = ['scolia', 123, [], ] b = a[:] print id(a), id(a[0]), id(

  • 全面理解Python中self的用法

    刚开始学习Python的类写法的时候觉得很是麻烦,为什么定义时需要而调用时又不需要,为什么不能内部简化从而减少我们敲击键盘的次数?你看完这篇文章后就会明白所有的疑问. self代表类的实例,而非类. 实例来说明: class Test: def prt(self): print(self) print(self.__class__) t = Test() t.prt() 执行结果如下 <__main__.Test object at 0x000000000284E080> <class

  • 深入理解python中的闭包和装饰器

    python中的闭包从表现形式上定义(解释)为:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure). 以下说明主要针对 python2.7,其他版本可能存在差异. 也许直接看定义并不太能明白,下面我们先来看一下什么叫做内部函数: def wai_hanshu(canshu_1): def nei_hanshu(canshu_2): # 我在函数内部有定义了一个函数 return canshu_1*canshu_2 return

  • 深入理解Python中的*重复运算符

    在python中有个特殊的符号"*",可以用做数值运算的乘法算子,也是用作对象的重复算子,但在作为重复算子使用时一定要注意 注意的是:*重复出来的各对象具有同一个id,也就是指向在内存中同一块地址,在对各个对象进行操作是一定要注意. 举例来说: >>> alist = [range(3)]*4 >>> alist [[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]] 上面初始化一个二层列表用来模拟矩阵,该矩阵式4X

  • 彻彻底底地理解Python中的编码问题

    Python处理文本的功能非常强大,但是如果是初学者,没有搞清楚python中的编码机制,也经常会遇到乱码或者decode error.本文的目的是简明扼要地说明python的编码机制,并给出一些建议. 问题1:问题在哪里? 问题是我们的靶子,心中没有问题去学习就会抓不住重点. 本文使用的编程环境是centos6.7,python2.7.我们在shell中键入python以打开python命令行,并键入如下两句话: s = "中国zg" e = s.encode("utf-8

  • 如何理解Python中包的引入

    Python的from import *和from import *,它们的功能都是将包引入使用,但是它们是怎么执行的以及为什么使用这种语法呢? 从一模块导入全部功能 from import * means意味着"我希望能访问中我有权限访问的全部名称".例如以下代码something.py: # something.py public_variable = 42 _private_variable = 141 def public_function(): print("I'm

  • 如何理解python中数字列表

    数字列表和其他列表类似,但是有一些函数可以使数字列表的操作更高效.我们创建一个包含10个数字的列表,看看能做哪些工作吧. # Print out the first ten numbers. numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] for number in numbers: print(number) range() 函数 普通的列表创建方式创建10个数是可以的,但是如果想创建大量的数字,这种方法就不合适了.range() 函数就是帮助我们生成大量数

  • 如何理解Python中的变量

    变量 在Python中,存储一个数据,需要定义一个变量 number1 = 1 #numbe1就是一个变量,用来保存数据:1 number2 = 2 #number2也是一个变量,用来保存数据:2 sum = number1+number2 #sum也是一个变量,用力保存1+2的值 说明: 所谓变量:就是可以改变的量. 程序就是用来处理数据的,而变量就是用来存储数据的 python中的变量不需要指明类型,系统会自动识别 内容扩展: 变量命名 1.下划线或大小写字母开头,后面可跟下划线.大小写字母

随机推荐