2015-12-14 116 views
1

文件结构:蟒蛇:不能在同级别访问目录中的文件

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.yam l未找到

任何提示?

回答

1

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

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

你的路径应该是./configdir因为configdir是在同一个目录中main.py

注:从技术上讲,这取决于你如何执行main.py,它是真正关系到你执行目录。这个答案假设你正在运行main.py in packagedir

+0

非常感谢弗拉德。我应该更专心! – AJN