当我使用adb pull命令将文件从设备复制到PowerShell中的pc时,我明白了:
from tkinter import *
from tkinter import font
from PIL import Image, ImageTk
class App(Tk):
def __init__(self):
Tk.__init__(self)
self.variables()
self.makeUI()
def variables(self):
self.buttonlist = []
self.font = font.Font(family = "Consolas", size = 12, weight = "bold")
def makeUI(self):
self.title("Changing font")
self.geometry("300x300")
self.minsize(200, 200)
self.maxsize(1000, 1000)
self.columnconfigure(0, weight = 1)
self.rowconfigure(0, weight = 1)
self.buttonlist.append(Button(self, height = 2, width = 4, font = self.font))
self.buttonlist[0].grid(row = 0, column = 0, sticky = W+E+S+N, padx = 2, pady = 2)
self.update()
self.image2 = Image.open("1.png")
self.image = ImageTk.PhotoImage(self.image2.resize((self.buttonlist[0].winfo_width(), self.buttonlist[0].winfo_height()), Image.ANTIALIAS))
self.buttonlist[0].configure(image = self.image)
self.buttonlist[0].bind("<Configure>", self.changeimage)
def changeimage(self, *args):
self.update()
#use smaller size
x = self.buttonlist[0].winfo_width()
y = self.buttonlist[0].winfo_height()
x = x if x < y else y
self.image = ImageTk.PhotoImage(self.image2.resize((x, x), Image.ANTIALIAS))
self.buttonlist[0].configure(image = self.image)
def main():
root = App()
root.mainloop()
if __name__ == "__main__":
main()
实际上是复制了文件。
问题是我想在循环中使用它,所以当它抛出异常时,脚本会停止播放。
cmd中的相同命令工作正常。
答案 0 :(得分:0)
exe通常会向错误流发送信息。我确信这也是你在这里看到的。 &#34;错误&#34; (读起来就像我使用手指空气报价一样)很可能来自这条线
.\adb.exe : 6040 KB/s (34027 bytes in 0.005s)
如果您熟悉psexec,则信息的初始标题位于错误流中。
由于该数据位于错误流上,因此PowerShell会将其报告为错误。正如您在注释中所做的那样,将错误流重定向到null是可以接受的。 2>$null
如果您不需要返回的输出,也可以试用Start-Process
。
Start-Process adb.exe -ArgumentList "pull '/sdcard/temp/screenshot.png'"
如果在任何一种情况下确实存在错误,您必须要小心。