blz*_*blz 3 python path relative-path
堆栈溢出,
下面是我的脚本的前几行:
from ConfigParser import SafeConfigParser
from docopt import docopt
import core as scrappy
ARGS = docopt(__doc__, version=scrappy.__version__)
if not ARGS['PATH']:
ARGS['PATH'] = './'
# load config file
CFG = SafeConfigParser()
if not CFG.read(ARGS['--cfg']): # call to CFG.read also loads file if it exists
raise IOError('Configuration file not found.')
Run Code Online (Sandbox Code Playgroud)
我尝试读取的配置文件与上述脚本位于同一目录中。默认情况下,docopt 将此文件的路径设置为./file.conf(我已经测试过,file.conf结果相同)。
脚本的最后一行总是被调用,提示找不到文件。我通过打印 的输出来确认这一点os.getcwd,该输出显示脚本的执行目录是终端指向的目录。
是什么赋予了?
我可以做什么来指向配置文件?
使用__file__预定义的模块属性。像这样:
module_dir = os.path.dirname(__file__)
CFG = SafeConfigParser()
cfg_full_path = os.path.join(module_dir, ARGS['--cfg'])
if not CFG.read(cfg_full_path):
...
Run Code Online (Sandbox Code Playgroud)