我在C:\ Desktop \ A中有一个python脚本“cost_and_lead_time.py”。该脚本导入3个其他脚本和一个“cost_model.json”文件,所有这些文件都在文件夹A中。
现在,我有一个模拟结果,比如C:\ Desktop \ Model \ Results。我在“call C:\ Desktop \ A \ cost_and_lead_time.py”这个文件夹中有一行批处理文件,但在尝试打开cost_model.json文件时返回错误。在导入json之前出现的其他3个脚本似乎没有问题。
我的问题是,有没有办法将这个cost_model.json文件保存在该目录中并通过批处理文件运行脚本而不将json文件复制/粘贴到结果文件夹中?我能想到的唯一方法是在python脚本中硬编码文件的完整路径,但这对我来说并不理想。我正在寻找添加到批处理文件的代码,而不是python脚本。
由于
答案 0 :(得分:1)
'cd path'或将此代码添加到python执行文件中。
import os,sys
path = os.path.abspath(os.path.dirname(__file__))
os.chdir(path) #for relative files
sys.path.insert(0,path) #for modules load
传递给脚本的工作文件路径必须在os.chdir之前解析参数时重写为os.path.abspath。或者不使用chdir并重写静态路径
答案 1 :(得分:0)
最终需要某种方式告诉您的脚本您需要处理什么。有各种各样的方法,但它确实需要发生。我认为在批处理文件中最明显的事情是在运行Python脚本之前复制目标文件。
但是,更简洁的解决方案可能是将命令行参数放入python脚本(通过sys.argv),该脚本告诉脚本需要处理哪个文件。