繁体   English   中英

bat文件在其他目录中运行py脚本

[英]bat file running py script in different directory

我在C:\\ Desktop \\ A中有一个python脚本“ cost_and_lead_time.py”。 此脚本导入其他3个脚本和一个“ cost_model.json”文件,所有这些文件均位于文件夹A中。

现在,我的仿真结果为C:\\ Desktop \\ Model \\ Results。 我在“调用C:\\ Desktop \\ A \\ cost_and_lead_time.py”的此文件夹中有一个单行批处理文件,但是在尝试打开cost_model.json文件时返回错误。 与打开json之前出现的脚本一样,导入其他3个脚本似乎没有问题。

我的问题是,有什么方法可以将此cost_model.json文件保留在该目录中,并通过批处理文件运行脚本,而无需将json文件复制/粘贴到results文件夹中? 我能想到的唯一方法是在python脚本中硬编码文件的完整路径,但这对我来说并不理想。 我正在寻找要添加到批处理文件中的代码,而不是python脚本。

谢谢

bat文件中的“ 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并重写静态路径

最终,需要某种方式来告诉您的脚本您需要处理的内容。 有很多种方法可以实现,但这确实需要发生。 我认为批处理文件中最明显的事情是在运行Python脚本之前将目标文件复制到位。

但是,更干净的解决方案可能是将命令行参数带入python脚本(通过sys.argv),该命令告诉脚本需要处理哪个文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM