Другой пример Linux: если вы просто пишете быстрый скрипт (не беспокойтесь о искаженных именах файлов, поступающих от ненадежных пользователей), вы всегда можете просто отложить выполнение до 7z (этот код предполагает, что у вас поддерживается опция без документов -ba)
#!/usr/bin/python3
# this doesn't work for files with embedded newlines
import subprocess
import sys
pp = subprocess.run(
[ '7z', 'l', '-ba', sys.argv[1] ] ,
stdout = subprocess.PIPE ,
stderr = subprocess.PIPE ,
)
pp.check_returncode()
for line in pp.stdout.split( b'\n' ):
if line:
sys.stdout.buffer.write( line[53:] )
sys.stdout.buffer.write( b'\n' )