while True: title='New Connection' wid_new = subprocess.check_output(['xdotool', 'search', '--sync', '--name', title]) #wid_new = wait('New Connection',560) print("4") if len(wid_new)>1: print(wid_new) break
时间: 2024-04-25 08:26:48 浏览: 8
这段代码的功能是,在一个无限循环中,先将变量 title 赋值为字符串 "New Connection",然后通过运行命令行命令 `xdotool search --sync --name New Connection` 获取与窗口名称为 "New Connection" 相关联的窗口 ID,并将其存储在变量 wid_new 中。接下来,打印字符串 "4"。然后,如果变量 wid_new 中的元素数量大于1,则打印出变量 wid_new 的值,并且跳出循环。如果变量 wid_new 中的元素数量不大于1,则不执行任何操作。这次代码中 wid_new 被正确赋值,可以正常运行。
相关问题
while True: title='New Connection' wid_new = subprocess.check_output(['xdotool', 'search', '--sync', '--name', title]) #wid_new = wait('New Connection',560) print("3") if len(wid_new)>2: print(wid_new) break为什么只输出一个元素
根据你提供的代码,`wid_new`是通过`subprocess.check_output()`函数获取的,该函数返回的是一个字节串(bytes),而不是一个列表。
因此,`len(wid_new)`的结果是字节串的长度,而不是元素的数量。如果你想获取元素数量,应该先将字节串转换为字符串,然后再使用字符串的分割方法(如`split()`)进行分割。
例如,你可以使用以下代码来获取窗口ID列表:
```
wid_new = subprocess.check_output(['xdotool', 'search', '--sync', '--name', title]).decode().split()
```
这里,`decode()`方法将字节串转换为字符串,然后使用`split()`方法将字符串按照空格分割成一个列表。这样就可以获取窗口ID列表了。
while True: title='New Connection' wid = subprocess.check_output(['xdotool', 'search', '--sync', '--name', title]) #wid_new = wait('New Connection',560) print("4") if len(wid_new)>1: print(wid_new) break
这段代码的功能是,在一个无限循环中,先将变量 title 赋值为字符串 "New Connection",然后通过运行命令行命令 `xdotool search --sync --name New Connection` 获取与窗口名称为 "New Connection" 相关联的窗口 ID,并将其存储在变量 wid 中。接下来,打印字符串 "4"。然后,如果变量 wid_new 中的元素数量大于1,则打印出变量 wid_new 的值,并且跳出循环。如果变量 wid_new 中的元素数量不大于1,则不执行任何操作。注意,此处变量 wid_new 并未在代码中被定义或赋值,可能存在问题。