If you have pip installed in a python3 environment, you can do: pip3 install ruamel.zip2tar If you don't want the output compressed, remove :bz2 and. The Bzip2 compressed output is normally much smaller than the zip file because the latter doesn't use compression patterns over multiple files, but there is also less chance of recovering later file if something in the Bzip2 file is wrong. Provide the ZIP filename as an argument to the script, the output filename for xyz.zip will be 2. Just save it to zip2tar and make it executable or save it to zip2tar.py and run python zip2tar.py. Output_file_name = os.path.splitext(input_file_name) + '.tar.bz2' Tar_info.mtime = time.mktime(list(zip_info.date_time) + Tar_info = tarfile.TarInfo(name=zip_info.filename) #print zip_info.filename, zip_info.file_size I don't know of any 'standard' utility that does so, but when I needed this functionality I wrote the following Python script to go from ZIP to Bzip2 compressed tar archives without extracting anything to disk first: #! /usr/bin/env python This is now available as installable command from PyPI, see the end of this post.