python中获取文件目录的方法

获取文件路径引用的模块可以有:sys/os

用sys.args[0]参数是获得主执行文件路径的最佳方法;

也可以调用__file__这个参数,但是"__file__" 是用来获得模块所在的路径的;具体如下:

 1 #!/usr/bin/env python
 2 # coding: utf-8
 3
 4 import sys
 5 import os
 6
 7 jms_dir = os.path.dirname(os.path.abspath(os.path.dirname(__file__)))
 8 print "sys.argv[0]获取主执行文件路径的最佳方法,它可能是一个相对路径 ---------->>>>   ",sys.argv[0]
 9 print "__file__ 是用来获得模块所在的路径的,这可能得到的是一个相对路径 ---------->>>>   ",__file__
10 print "os.path.dirname(__file__)获取__file__的相对目录 ---------->>>>   " ,os.path.dirname(__file__)
11 print "os.path.abspath(__file__)表示获取__file__模块的绝对路径 ---------->>>>   ",os.path.abspath(__file__)
12 print "os.path.abspath(sys.argv[0])表示获取的绝对路径 ---------->>>>   ",os.path.abspath(sys.argv[0])
13 print "os.path.dirname(os.path.abspath(os.path.dirname(__file__))) ---------->>>>       ",jms_dir
14 print "os.path.abspath(os.path.dirname(__file__)) ---------->>>>       ",os.path.abspath(os.path.dirname(__file__))
15 print "os.path.dirname(os.path.abspath(__file__)) ---------->>>>        "       ,os.path.dirname(os.path.abspath(__file__))结果为:
1 [[email protected] hejoy]# ./q.py
2 sys.argv[0]获取主执行文件路径的最佳方法,它可能是一个相对路径 ---------->>>>    ./q.py
3 __file__ 是用来获得模块所在的路径的,这可能得到的是一个相对路径 ---------->>>>    ./q.py
4 os.path.dirname(__file__)获取__file__的相对目录 ---------->>>>    .
5 os.path.abspath(__file__)表示获取__file__模块的绝对路径 ---------->>>>    /home/hejoy/q.py
6 os.path.abspath(sys.argv[0])表示获取的绝对路径 ---------->>>>    /home/hejoy/q.py
7 os.path.dirname(os.path.abspath(os.path.dirname(__file__))) ---------->>>>    /home
8 os.path.abspath(os.path.dirname(__file__)) ---------->>>>        /home/hejoy
9 os.path.dirname(os.path.abspath(__file__)) ---------->>>>     /home/hejoy
时间: 2024-10-11 00:34:04

python中获取文件目录的方法的相关文章

Python中获取异常(Exception)信息

异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置.下面介绍几种python中获取异常信息的方法,这里获取异常(Exception)信息采用try...except...程序结构.如下所示 try: ... except Exception as e: ... 1.str(e) 返回字符串类型,只给出异常信息,不包括异常信息的类型,如1/0的异常信息 'integer division or modulo by zero' 2.repr(e) 给出较全的异常信息,包括异

python进阶四(类的继承)【4-5 python中获取对象信息】

python中获取对象信息 拿到一个变量,除了用 isinstance() 判断它是否是某种类型的实例外,还有没有别的方法获取到更多的信息呢? 例如,已有定义: 1 class Person(object): 2 def __init__(self, name, gender): 3 self.name = name 4 self.gender = gender 5 6 class Student(Person): 7 def __init__(self, name, gender, score

【转】python中List的sort方法(或者sorted内建函数)的用法

原始出处:http://gaopenghigh.iteye.com/blog/1483864 python列表排序 简单记一下python中List的sort方法(或者sorted内建函数)的用法. 关键字: python列表排序 python字典排序 sorted List的元素可以是各种东西,字符串,字典,自己定义的类等. sorted函数用法如下: Python代码   sorted(data, cmp=None, key=None, reverse=False) 其中,data是待排序数

60秒验证码倒计时js代码 js样式代码 方块上下左右随机移动(定时器) js中获取元素的方法 js中表单提交

60秒验证码倒计时js代码 <script type="text/javascript"> var countdown=60; function settime(val) { if (countdown == 0) { //removeAttribute() 方法删除指定的属性. disabled属性规定应该禁用 input 元素. val.removeAttribute("disabled"); val.value="免费获取验证码"

python中List的sort方法的用法

python列表排序 简单记一下python中List的sort方法(或者sorted内建函数)的用法. 关键字: python列表排序 python字典排序 sorted List的元素可以是各种东西,字符串,字典,自己定义的类等. sorted函数用法如下: Python代码   sorted(data, cmp=None, key=None, reverse=False) 其中,data是待排序数据,可以使List或者iterator, cmp和key都是函数,这两个函数作用与data的元

python中函数的使用方法

本文主要介绍:python中函数的使用方法 代码: #!/usr/bin/env python# -*- coding:utf-8 -*-# author by lh #函数里默认形参如果有初始值的话,调用的时候如果不写实参,则默认是形参里的初始值(ps:如果有多个形参,有默认值的参数一定要放到后面)def f1(a='rt'): temp='Welcome '+a return tempret=f1('lh')print retret1=f1()print ret1 #实参可以是任意类型的参数

C#中获取随机数有三种方法

随机数的定义为:产生的所有数字毫无关系. 在实际应用中很多地方会用到随机数,比如需要生成唯一的订单号. 在C#中获取随机数有三种方法: 一.Random 类 Random类默认的无参构造函数可以根据当前系统时钟为种子,进行一系列算法得出要求范围内的伪随机数. 1 2 Random rd = new Random(); int i = rd.Next(); 这种随机数可以达到一些要求较低的目标,但是如果在高并发的情况下,Random类所取到的系统时钟种子接近甚至完全一样,就很有可能出现重复,这里用

【转】关于python中re模块split方法的使用

注:最近在研究文本处理,需要用到正则切割文本,所以收索到了这篇文章,很有用,谢谢原作者. 原址:http://blog.sciencenet.cn/blog-314114-775285.html 关于python中re模块split方法的使用 已有 3094 次阅读 2014-3-12 11:30 |系统分类:科研笔记 今天在写一段小代码的时候需要用到re.split()方法,在使用的过程中发现了一个以前不知道的新用法,发现这个用法还是挺实用的,就把它记录下来: >>> m = re.s

迭代器就是重复地做一些事情,可以简单的理解为循环,在python中实现了__iter__方法的对象是可迭代的,实现了next()方法的对象是迭代器,这样说起来有

迭代器就是重复地做一些事情,可以简单的理解为循环,在python中实现了__iter__方法的对象是可迭代的,实现了next()方法的对象是迭代器,这样说起来有点拗口,实际上要想让一个迭代器工作,至少要实现__iter__方法和next方法.很多时候使用迭代器完成的工作使用列表也可以完成,但是如果有很多值列表就会占用太多的内存,而且使用迭代器也让我们的程序更加通用.优雅.pythonic.下边是一个例子,从里边你会感受到不用列表而用迭代器的原因. #!/usr/bin/env python #c