推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
jsonzz
V2EX  ›  Python

Python 调用文件路径正确科学的方法是什么?

  •  
  •   jsonzz · Aug 23, 2017 · 3269 views
    This topic created in 3324 days ago, the information mentioned may be changed or developed.

    项目结构

    -- data

    * config.ini
    

    -- lib

    * __init__.py
    * utils.py
    * main.py
    

    utils 内封装了读取 ini 的方法,其中路径获取方式为:

    self.path = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))+'/data/config.ini'
    self.cf = ConfigParser.ConfigParser()
    self.cf.read(self.path)
    

    问题描述:

    lib 会被安装 site-packages 中,utils 中 self.path 获取路径错误,以下是获取错误的地址与真实地址

    • /Users/qq/Desktop/test/lib/python2.7/site-packages/hhh-1.3.1-py2.7.egg/data/config.ini
    • /Users/qq/Desktop/test/app/data/config.ini

    问题

    • 请问工程内,python 调用文件路径正确科学的方法是什么?
    7 replies  •  2017-08-23 20:48:23 +08:00
    Patrick95
        1
    Patrick95  
       Aug 23, 2017
    self.path = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), ".."))+'/data/config.ini'
    self.cf = ConfigParser.ConfigParser()
    self.cf.read(self.path)

    这样试试?
    CoX
        2
    CoX  
       Aug 23, 2017 via iPhone
    封装逻辑有问题,配置文件路径作为参数传进去
    jsonzz
        3
    jsonzz  
    OP
       Aug 23, 2017
    @Patrick95 感谢回复,问题依旧
    guyskk
        4
    guyskk  
       Aug 23, 2017 via Android
    配置文件和代码一起安装到 site-packages 里面
    lxy42
        5
    lxy42  
       Aug 23, 2017
    既然 lib 都被安装到 site-packages 中了,__file__ 的路径就变了,不是原来的了
    billgreen1
        6
    billgreen1  
       Aug 23, 2017
    同意 @guyskk
    954880786
        7
    954880786  
       Aug 23, 2017 via iPhone
    我习惯于把路径放在一个专门的配置文件里
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2917 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 79ms · UTC 12:58 · PVG 20:58 · LAX 05:58 · JFK 08:58
    ♥ Do have faith in what you're doing.