2015-12-14 106 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