【问题标题】:Opening an image file using Sikuli/Jython without clicking使用 Sikuli/Jython 打开图像文件而不单击
【发布时间】:2015-02-23 22:11:55
【问题描述】:

我正在编写一个将图像文件保存到桌面的脚本(例如“image.JPG”)。之后,我想打开图像文件,使其显示在屏幕上。我一直在尝试使用 subprocess (我没有经验),但似乎无法让它工作。

import subprocess
subprocess.Popen("C:/Users/first.last/Desktop/image.JPG")

但是,这会导致以下错误:

[error] OSError ( Cannot run program "C:/Users/sean.sheehan/Desktop/image.JPG" (in directory "C:\SikuliX"): CreateProcess error=193, %1 is not a valid Win32 application )

我假设这是因为它是一个文件而不是一个应用程序(也许我必须打开一个允许您查看图像的应用程序?)

那么,有没有办法在 sikuli/jython/python 中打开图像文件而无需使用 sikuli 双击它?我也不想下载任何额外的包。

谢谢。

【问题讨论】:

    标签: python jython sikuli


    【解决方案1】:

    如果是普通的 Python,你会使用 os.startfile():

    使用关联的应用程序启动文件。

    import os
    
    filename = "C:/Users/first.last/Desktop/image.JPG"
    os.startfile(filename)
    

    但是,问题在于 Python 中存在这些东西(基于 C 的功能),但在 Jython 中却没有。而os.startfile() 就是其中之一。

    subprocess.call() 应该在 Jython 中工作:

    import subprocess
    
    filename = "C:/Users/first.last/Desktop/image.JPG"
    subprocess.call('start ' + filename)
    

    还可以在以下位置查看更多选项:

    【讨论】:

    • 酷。但是,这在 Jython 中有效吗?它在 cmd 行上使用 python 工作,但似乎在 Sikuli (Jython) 中不起作用。无论哪种方式,我都对其进行了调查,并使用“os.system(filename)”来解决问题,所以谢谢。
    • @user2869231 是的,正确,os.startfile() does not exist in Jython at all
    • @user2869231 好的,现在编辑完成,subprocess.call() 应该可以工作,请检查。
    猜你喜欢
    • 2020-11-13
    • 2019-03-26
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    • 2012-03-12
    相关资源
    最近更新 更多