如何处理scrcpy模块返回的FileInfo格式输出?
解决scrcpy FileInfo对象解包错误的问题
你遇到的错误是因为devices.sync.list(remote)返回的是包含FileInfo对象的列表,每个元素是一个FileInfo实例,而非可直接按位置解包的元组。直接用for (mode, size, mtime, path) in ...会尝试迭代FileInfo对象本身,但它并没有实现迭代协议,因此报错。
正确的处理方式有两种:
方式一:直接访问对象属性
遍历列表中的每个FileInfo实例,通过属性名获取对应值:
for file_info in devices.sync.list(remote): mode = file_info.mode size = file_info.size mtime = file_info.mtime path = file_info.path # 这里写你的后续处理逻辑
方式二:用attrgetter简化属性获取
如果想一次性提取多个属性,可以借助operator.attrgetter:
from operator import attrgetter # 定义获取指定属性的函数 get_file_attrs = attrgetter('mode', 'size', 'mtime', 'path') for file_info in devices.sync.list(remote): mode, size, mtime, path = get_file_attrs(file_info) # 这里写你的后续处理逻辑
内容的提问来源于stack exchange,提问作者howard
相关产品推荐
相关产品推荐

