7Z is the 7-Zip archive, which compresses hardest. ZIP is the archive format every operating system opens without help. Python sits between the two, and this page says exactly what happens to a 7Z file on the way to becoming a ZIP one.
What runs when a 7Z file becomes ZIP
Python and its standard library, on a machine we rent and watch. Your 7Z file is uploaded once, Python runs once, the ZIP comes back, and neither file is kept. 7Z to ZIP is one of the 3649 pairs that engine was probed on with a real file, which is why it has a page here and why the pairs the probe could not prove do not.
What survives from the 7Z into the ZIP
Every file, byte for byte, with the path it had. This pair reads each member out of the 7Z and writes it into the ZIP unchanged: nothing is recompressed twice, re-encoded or renamed. The engine counts the members on the way out and refuses the result if the count moved.
Directory structure. A file that lived in reports/2024/ arrives in reports/2024/, which is what makes the ZIP openable rather than a heap.
The ability to open it by double-clicking. Windows and macOS both read ZIP with nothing installed, which is the whole reason this pair exists: a 7Z usually needs an application, and a ZIP does not.
Random access. Each file in a ZIP is compressed on its own, so a reader can pull one out without walking the rest. That is also why it compresses less than the others, and the two facts are the same fact.
What 7Z to ZIP costs you
Symbolic links, hard links and special files. They are dropped rather than copied, and the response says how many: a link means something only relative to the machine that wrote it, and carrying one into an archive bound for another machine is how you build a trap. If your 7Z holds links, the ZIP will hold the files and not the links.
Unix permissions and ownership. The ZIP is written with a fixed mode and a zero timestamp, deliberately: the same input then always produces the same bytes, and the rights of a machine you do not control mean nothing on yours.
Compression ratio, and often by a lot. A ZIP compresses each file on its own, so it cannot notice that a hundred files resemble each other. On a folder of similar documents the ZIP can be twice the size of the 7Z.
Where 7Z and ZIP files come from
7Z. Igor Pavlov wrote it in 1999 for 7-Zip. It compresses the whole archive with LZMA and usually wins on size, at a cost measured here: 59 seconds for 200 MB against 6 for gzip. Windows does not open it without an application, which is the reason most people convert one.
ZIP. Phil Katz published it in 1989 and it never went away. Its one decisive property is that each file inside is compressed separately, which is why a ZIP opens instantly and why it compresses worse than the others: nothing is shared between two files that look alike.
If a model is going to read the ZIP
Structure is what survives from the 7Z file, and structure is what a model needs. 7Z in, ZIP out, with the heading tree intact instead of flattened into one long paragraph.
7Z to ZIP, measured rather than promised
Running 7Z to ZIP against the real engine with a real file, Python wrote 309 bytes of ZIP in under a tenth of a second, machine otherwise idle. That is one 7Z file on one day and not an average, which is why the number is given together with the file that produced it.
The 7Z to ZIP verdict was reached by reading the archive members back and finding a witness word, meaning the output was read back and recognised. Which check was used matters, because they do not all prove the same thing, and a status code of 200 proves nothing whatsoever about whether the ZIP file has anything inside it.
Other ways into ZIP, and what they measured
Among the published routes into ZIP, 7Z is the first largest output of the 3 measured. The witness files differ, so this ranks the probe run and not your document.
TGZ to ZIP: 309 bytes in under a tenth of a second.
TAR to ZIP: 309 bytes in under a tenth of a second.
What we will not pretend about 7Z to ZIP
A 7Z file over 100 MB is refused before the upload finishes rather than after it, so you do not wait for a rejection.
A 7Z to ZIP run that passes 110 seconds is killed, and the Python process is killed with it. A run left behind would sit on one of the machine's two cores until somebody noticed.
An archive is the only kind of file whose contents decide how much room they will need once opened, and two kilobytes can hold ten gigabytes of zeros. This is a decompression bomb, it is thirty years old and it still works. Three limits answer it here, and they COUNT rather than trust the header, which can lie: 100 MB uploaded, 250 MB once decompressed, 5000 entries. A 7Z past any of them is refused, and the refusal names which one.
Nothing is written to disk on our side, not even temporarily. An archive is also the only kind of file whose contents decide FILE NAMES, and an entry called ../../etc/passwd is an attack as old as the format. Members pass from 7Z to ZIP in memory, so there is no destination directory to escape from. The names are cleaned anyway before they enter the ZIP: that part protects whoever opens it, not us.
One 7Z file at a time, chosen in the browser. There is nothing else to set up and nothing else on offer.
7Z to ZIP: what people ask
What actually converts my 7Z file to ZIP?
Python does it, and its standard library, on a machine we rent and watch. Not a browser trick and not somebody else service: the 7Z file is uploaded once, Python runs once, the ZIP comes back, and neither file is kept afterwards.
How long does 7Z to ZIP take?
On the file the probe used, Python took under a tenth of a second and wrote 309 bytes of ZIP. That is one real measurement on one real 7Z file, not an average and not a promise about yours: a larger 7Z takes longer, and past 110 seconds the run is stopped.
What do I lose going from 7Z to ZIP?
The one to know about first: Symbolic links, hard links and special files. They are dropped rather than copied, and the response says how many: a link means something only relative to the machine that wrote it, and carrying one into an archive bound for another machine is how you build a trap. If your 7Z holds links, the ZIP will hold the files and not the links.
Are my files changed in any way?
No. Each one is read out of the 7Z and written into the ZIP byte for byte, with the path it had. What changes is the box around them. The engine counts the members on the way out and refuses the result if the count moved, which is the one way this could go wrong quietly.
Why is the ZIP bigger than the 7Z?
Because a ZIP compresses each file on its own, while a 7Z compresses the whole bundle at once. On a folder of similar files that difference is large. You are trading size for the fact that anyone can open a ZIP without installing anything.
What happens to symbolic links?
They are dropped, and the response says how many. A link means something only relative to the machine that wrote it; carrying one into an archive bound for another machine is how you build a trap. The files stay, the links do not.
Is there a size limit?
Three, and they are stricter than for other formats for a reason: an archive decides how much room it needs once opened, and two kilobytes can hold ten gigabytes. 100 MB uploaded, 250 MB once decompressed, 5000 entries. Past any of them the answer says which one, rather than a generic refusal.
Is 7Z to ZIP free?
There is a free allowance every month, and one 7Z to ZIP conversion costs half a credit against it. When the allowance runs out the tool says so and stops, rather than quietly handing you a worse ZIP.