python:无法访问同一级别的目录中的文件

时间:2015-12-14 20:11:19

标签: file python-2.7

文件结构:

packagedir
   |
   |-configdir
       |
       |-cmd1.yaml
       |-cmd2.yaml
   |
   |-main.py
从main.py文件

我想在configdir中读取一些yaml文件,程序找不到它们:

import os.path

cmdfile = os.path.join(os.path.dirname('__file__'), '../configdir', 'cmd1.yaml')

try:
    stream = open(cmdfile)
    rdata = yaml.load(stream)
    if self.rdata:
        for cmd in value[6:len(value)+1]:
            print cmd
    else:
            logging.debug('File ',cmdfile,' is empty')
except IOError:
    print 'File ',cmdfile,' NOT found'

结果:

  

文件../config/INTERNET-cmd.yaml未找到

任何提示?

1 个答案:

答案 0 :(得分:1)

在该文件夹结构中,您的路径是错误的。 '' =当前目录,'..'=父目录。当你运行它时,它正在寻找一个文件夹,它是打包的兄弟(用星号标记)。

packagedir
   |
   |-configdir
       |
       |-cmd1.yaml
       |-cmd2.yaml
   |
   |-main.py
******

您的路径应为./configdir,因为configdir与main.py

位于同一目录中

注意:从技术上讲,这取决于你如何执行main.py,它实际上与你的执行目录有关。这个答案假设你在packageir中运行main.py