我的 python 程序遇到了一些问题。基本上,我希望能够将多个图像的路径文件发送到命令提示符(用户定义了多少图像,所以只需将直接文件路径作为 args,如下所示,并不能满足我的要求)。我的代码目前看起来像这样:
os.system("java -jar C:\\Inetpub\\ftproot\\JPivSource\\jpivc.jar image_00000001.jpg image_00000002.jpg image_00000003.jpg")
还有更多的图像,所以当然,写出 image_00000004、5、6 等几乎没有效率,并且完全取决于每次都有相同数量的图像,而事实并非如此。 (jpivc.jar 是在执行此代码时打开的程序,它会导入图像并执行操作 - 这一点工作正常)。理想情况下,代码应该是这样的:
for i in range(1, NumberOfImages):
os.system("java -jar C:\\Inetpub\\ftproot\\JPivSource\\jpivc.jar image_0000000" + i + ".jpg")
除了,你知道,每次 i 递增时都没有打开 jpivc.jar,我只是使用上面的内容来展示我想要的东西。不幸的是,这是行不通的,因为它只将“”中的第一部分发送到命令行,如果它没有给出错误消息——我的第一个问题是,有没有办法让它做我想做的事做?我在 python 方面相对缺乏经验,所以请尽可能温和地了解技术细节。
我的第二个问题是 - 有没有办法关闭命令提示符或 jpivc.jar?我已经尝试了所有我能想到的预定义函数 - os.system("tskill cmd.exe") 及其变体,os.kill()(尽管我我正在使用 2.5,所以我并不惊讶这不起作用),Popen.kill() 和 Popen.terminate(),甚至尝试编写我自己的使用 ctypes 终止函数。没有任何效果——除非手动关闭 cmd.exe 或 jpivc.jar,否则我其余代码中的所有内容都可以完美运行。我认为 Python 会停止,直到命令行关闭 - 当我想从 Python 关闭命令行时,这没有帮助!总结;为什么它会那样停止,我该如何解决?
如果需要,可以提供我的代码的更多摘录 - 我在 Windows XP Professional 上使用 Python 2.5.4。不要让我提供 jpivc.jar 中的任何内容 - 我什至不会假装懂一点点 Java。
提前致谢
戴夫
请您参考如下方法:
我相信你正在寻找这样的东西
fileNames=""
for i in range(1, NumberOfImages):
fileNames += "image_0000000%d.jpg "%i
os.system( "java -jar C:\\Inetpub\\ftproot\\JPivSource\\jpivc.jar %s"%fileNames )
将文件从 script.py 重命名为 script.pyw 以避免打开命令提示符。
jpivc.jar 将保持打开状态,直到您手动关闭它或程序员将其代码更改为在处理完所有文件后退出。
[编辑]
我发现这个用于启动和终止进程
pidId = os.spawnl(os.P_NOWAIT, "\\windows\\notepad.exe")
import win32api
win32api.TerminateProcess(pidId ,0)
