zoukankan      html  css  js  c++  java
  • 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 [root@localhost 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
  • 相关阅读:
    Visual Studio 2010 Preview (cont.)
    Office VBA 进阶(开篇)
    Two cool debugger tips that I learnt today
    Send GMail
    Google Email Uploader
    看看.NET 4.0 都有些什么?
    XML Serializer in .NET
    Timeloc: 一个Adobe AIR程序
    SDC task library 一个MSBuild Task的有益补充。
    不考虑促销活动的百货业态供应商结算设计
  • 原文地址:https://www.cnblogs.com/st12345/p/7344238.html
Copyright © 2011-2022 走看看