从os.popen(cmd).read()接收长度为0的返回字符串

我正在使用一个名为'ideviceinfo‘的命令行工具(参见https://github.com/libimobiledevice)来帮助我从我每天使用的iOS设备中快速获取串行、IMEI和电池健康信息。它的执行速度比苹果自己的“cfgutil”工具快得多。

到目前为止,我已经能够开发一个比下面在PyCharm (我的主集成开发环境)中显示的脚本更复杂的脚本,为各个变量分配特定的值等,然后使用类似于pyclip和pyautogui的东西来帮助将这些值自动粘贴到我们使用的数据库应用程序的字段中。我还可以在Mac终端和python shell中使用该脚本的简化版本,没有任何问题。

我希望使用AppleScript来帮助尽可能简单地运行脚本。

当我尝试使用Applescript的"do shell script 'python script.py'“时,当我调用'ideviceinfo‘时,我只得到一个长度为零的字符串。当我试图构建一个带有"python script.py“的”Run Shell Script“组件的自动化应用程序时,同样的事情也会发生。

我已尽了最大努力把问题找出来。当在脚本中调用'date‘等其他更基本的命令时,它们会返回有效的字符串。

    #!/usr/bin/python
    import os

    ideviceinfoOutput = os.popen('ideviceinfo').read()
    print ideviceinfoOutput
    print len (ideviceinfoOutput)

    boringExample = os.popen('date').read()
    print boringExample
    print len (boringExample)

我运行的是Mac OS X 10.11,运行的是Python 2.7

谢谢。

转载请注明出处:http://www.dbgszz.com/article/20230330/2322416.html