在Python中调用脚本末尾的函数

2024-09-27 19:20:29 发布

您现在位置:Python中文网/ 问答频道 /正文

到目前为止,我已经得到了很多帮助,并且能够成功地编写出一个Python脚本。该脚本基本上调用一个Windows可执行文件,然后执行一些操作,比如从远程服务器上拉下一些文件。在脚本的最后,我有一个函数,它执行压缩并将检索到的文件移动到另一个服务器。到目前为止,剧本效果不错,但现在看来我遇到了一个障碍。在

该脚本基本上接受ParentNumber作为输入,并找到1个或多个ChildNumbers。一旦收集到了ChildNumbers的列表,脚本就会用这个数字反复调用windows可执行文件,直到它完成为所有这些文件提取数据。在

如上所述,我为存档、移动文件和电子邮件通知而构建的函数在脚本末尾被调用,如果只有一个ChildNumber,那么这个函数工作得非常好。如果有许多ChildNumbers,并且当可执行文件在第二个ChildNumber上移动时,命令行会将其视为end并使用新行stats,如下所示:

.........
C:\Scripts\startscript.py
Input> ParentNumber
Retrieval started 
Retrieval finished
**Email Sent Successfully**
Preparing ParentNumber @childNumber

C:\Scritps\ParentNumber123\childNumber2
Retrieval Started
Retrieval finished
.........

`
如果您看到上面的脚本流,Email Sent successfully消息只显示在first ChildNumber下,这意味着它是在脚本完成之前调用的。在

我想要的实际行为是,一旦处理完所有ChildNumbers,就应该调用allarchivemoveemailfunction,但不确定哪里出了问题。在

我对ArchiveMoveEmailFunction的函数如下所示,它位于脚本中所有其他行的末尾:

^{pr2}$

请让我知道,如果我在这里遗漏了一些东西,以指定何时应该执行这个函数。如前所述,如果ParentNumber只有1个ChildNumber,那么它完全可以工作,所以不确定第二次检索跳转是否会引起一些问题。有没有一种方法可以让这个函数一直等到脚本中的其他函数被调用,或者逻辑上把这个函数移到另一个脚本中,然后从主脚本调用这个函数?在

以下是exe调用部分:

def execExe(childNumb):

cmd = "myExe retriveeAll -u \"%s\" -l \"%s\"" % (childNum.Url(),childAccount.workDir))
return os.system(cmd)

def retriveChildNumb(childNumb):

#Run the retrive
if not (execExe(childNumb)==0):
    DisplayResult(childNumb,3)
else:
    DisplayResult(childNumb,0)

return 0

任何关于这方面的意见都是非常有帮助的。在


Tags: 文件函数服务器脚本可执行文件emaildefsent
1条回答
网友
1楼 · 发布于 2024-09-27 19:20:29

您的问题很冗长,但很难理解;提供代码将使问题更容易解决。在

也就是说,我怀疑你用来调用Windows可执行文件的代码是异步的,这意味着你的程序在不等待可执行文件返回值的情况下继续(并完成)。在

相关问题 更多 >

    热门问题