i have a tar file but his members are not in the right order.
import tarfile
tar = tarfile.open("test.tar")
tar_members = tar.getmembers()[1:]
for elem in tar_members:
print(elem)
tar.close()
And if i use tar_members.sort()
before my for
i have the error : TypeError: '<' not supported between instances of 'TarInfo' and 'TarInfo'
I try this and it's work :
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()
I want to know if there is a simple way to sort the result of getmembers()
You can't compare TarInfo
objects, but you can compare their names:
tar_members = sorted(tar_members, key=lambda m: m.name)