我在这个结构中有我的python代码:
folder:
Procfile
folder2:
myprog.py
foo.py
somefile.txt
我的Procfile
包含web: python folder2/myprog.py
myprog.py
包含:
import sys
sys.path.insert(0, '../')
#other code
foo.py
包含:
print "about to read file"
file = open("somefile.txt", "r")
print file.read()
print "done reading"
我无法读取该文件。代码从未到达done reading
部分,尽管它打印about to read file
答案 0 :(得分:2)
您可以利用自动模块变量__file__
,并且您知道somefile.txt
与foo.py
位于同一目录中:
file = open(os.path.join(os.path.dirname(__file__), "somefile.txt"), "r")
sys.path
仅确定导入模块的搜索路径,而不是从文件系统打开通用文件的位置。