ich bin heute über ein seltsames Problem gestoßen und ich denke es hat nicht wirklich was mit Python zu tun, sondern eher über das ZIP Format, speziell die ZipInfo.extra bits.
Also erst mal das Problem schildern:
In Python:
Code: Alles auswählen
import time
import zipfile
data = 'Hello World'
date_time = tuple(time.localtime(time.time()))
zinfo = zipfile.ZipInfo('README.TXT', date_time[:6])
zfile = zipfile.ZipFile('myarchive.zip', 'w', zipfile.ZIP_DEFLATED, allowZip64=True)
zfile.writestr(zinfo, data)
zfile.close()
Code: Alles auswählen
dever@devbo:~/tmp$ unzip -l myarchive.zip
Archive: myarchive.zip
Length Date Time Name
--------- ---------- ----- ----
11 2016-12-20 02:55 README.TXT
--------- -------
11 1 file
dever@devbo:~/tmp$ unzip myarchive.zip
Archive: myarchive.zip
extracting: README.TXT
dever@devbo:~/tmp$ ls -l
total 0
-rw-rw-rw- 1 dever dever 129 Dec 20 03:01 myarchive.zip
---------- 1 dever dever 11 Dec 20 02:55 README.TXT
Das passiert allerdings wirklich nur bei ZIP Dateien, die ich über Python / ZipFile erstelle, NICHT wenn ich 7-zip nutze oder externe tools.
Und meine Umask funktioniert für normale Fälle:
Code: Alles auswählen
dever@devbo:~/tmp$ umask
0000
dever@devbo:~/tmp$ touch Datei
dever@devbo:~/tmp$ ls -l
total 0
-rw-rw-rw- 1 dever dever 0 Dec 20 03:12 Datei
-rw-rw-rw- 1 dever dever 129 Dec 20 03:01 myarchive.zip
---------- 1 dever dever 11 Dec 20 02:55 README.TXT
Siehe hier:
Code: Alles auswählen
dever@devbo:~/tmp$ unzip -l primenumbers.zip
Archive: primenumbers.zip
Length Date Time Name
--------- ---------- ----- ----
72992 2014-06-18 19:52 primenumbers.txt
--------- -------
72992 1 file
dever@devbo:~/tmp$ unzip primenumbers.zip
Archive: primenumbers.zip
inflating: primenumbers.txt
dever@devbo:~/tmp$ ls -l
total 100
-rw-rw-rw- 1 dever dever 0 Dec 20 03:12 Datei
-rw-rw-rw- 1 dever dever 129 Dec 20 03:01 myarchive.zip
-rw-rw-rw- 1 dever dever 72992 Jun 18 2014 primenumbers.txt
-rw-rw-rw- 1 dever dever 18949 Dec 20 03:17 primenumbers.zip
---------- 1 dever dever 11 Dec 20 02:55 README.TXT
Hat jemand einschlägige Erfahrung mit ZIP Dateien in Python und kann evtl. was intelligentes dazu sagen?
Danke für wertvolle Beiträge im Voraus.