我有一个需要通过批处理文件运行的Python脚本,但是我一直在使用cmd进行测试。在通过cmd运行时,它可以正常工作。然而,当通过批处理文件运行脚本时,它似乎会出现不同的行为。我已经将代码中可能存在问题的部分隔离出来:
CRFOLDER = "some path to all my files"
isReady = False
os.startfile(os.path.join(CRFOLDER,"CLogger.exe"))
while not isReady:
try:
open(os.path.join(CRFOLDER,"CRPYLog.py"))
isReady = True
except:
print "Not ready yet"
time.sleep(0.25)
import CRPYLog as PyLog
这段代码调用一个可执行文件,该文件会创建一个Python文件,我会导入这个文件(如果你想知道原因,请查看这里)。就像我说的,在 cmd 中运行时一切正常。然而,在使用批处理文件时,
while
循环会无限运行(或者至少2分钟,当在cmd中运行时只触发一次except
)。这是奇怪的。我已经参考了 这里,这里,以及这个问题,但都没有找到解决方法。以下是批处理文件。start Y:\Admin\Anaconda\python.exe "Y:\Projects\Advent - Overhead Projects\Copy - ADV001 - CR Records Management - Copy\Python\CRWizard.py"
我已经尝试将那个确切的命令粘贴到cmd中,它可以正常工作,但批处理文件无法正常工作。提前致谢。
CRFOLDER
是什么?在批处理文件和直接运行时,它是否指向相同的位置? - BrenBarnsubprocess.call
? - alkoCRFOLDER
是我所有文件所在的路径。我让它打印了os.path.join(CRFOLDER,"clogger.exe")
和os.path.join(CRFOLDER,"CRPYLog.py")
的值,它们都似乎是正确的。 - wnnmawstartfile
是以最干净的方式打开文件到它们默认程序的方法,但我怀疑这并没有什么神圣不可侵犯的地方。 - wnnmaw