我有一个 tar 文件,但他的成员顺序不正确。
import tarfile
tar = tarfile.open("test.tar")
tar_members = tar.getmembers()[1:]
for elem in tar_members:
print(elem)
tar.close()
如果我使用 tar_members.sort()
在我的for
之前我有错误:TypeError: '<' not supported between instances of 'TarInfo' and 'TarInfo'
我尝试了一下,成功了:
import tarfile
tar = tarfile.open("test.tar")
tar_members = tar.getmembers()[1:]
tar_name = []
for elem in tar_members:
tar_name.append(elem.name)
tar_name.sort()
tar_members = []
for name in tar_name:
tar_members.append(tar.getmember(name))
for elem in tar_members:
print(elem)
tar.close()
我想知道是否有一种简单的方法来对 getmembers() 的结果进行排序
最佳答案
您无法比较 TarInfo
对象,但可以比较它们的名称:
tar_members = sorted(tar_members, key=lambda m: m.name)
关于python - 对 TarInfo 列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58911943/