我的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
您可以利用自动模块变量__file__
以及您知道somefile.txt
与foo.py
位于同一目录中的事实:
file = open(os.path.join(os.path.dirname(__file__), "somefile.txt"), "r")
sys.path
仅确定导入模块的搜索路径,而不确定从文件系统打开通用文件的位置。