文件结构:
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未找到
任何提示?
答案 0 :(得分:1)
在该文件夹结构中,您的路径是错误的。 '' =当前目录,'..'=父目录。当你运行它时,它正在寻找一个文件夹,它是打包的兄弟(用星号标记)。
packagedir
|
|-configdir
|
|-cmd1.yaml
|-cmd2.yaml
|
|-main.py
******
您的路径应为./configdir
,因为configdir与main.py
注意:从技术上讲,这取决于你如何执行main.py,它实际上与你的执行目录有关。这个答案假设你在packageir中运行main.py