(c) 2023 Technische Hochschule Augsburg - Fakultät für Informatik - Prof.Dr.Nik Klever - Impressum
import reprlib
reprlib.repr("Dies ist ein längerer Satz mit einer Anzahl von Wörtern")
"'Dies ist ein...l von Wörtern'"
reprlib.repr(list("Dies ist ein längerer Satz mit einer Anzahl von Wörtern"))
"['D', 'i', 'e', 's', ' ', 'i', ...]"
import pprint
t = {1: 'eins', 2:[1,2,3,4], 3:'drei', 4:['eins','zwei',[5,6,7,8]]}
pprint.pprint(t, width=30)
{1: 'eins', 2: [1, 2, 3, 4], 3: 'drei', 4: ['eins', 'zwei', [5, 6, 7, 8]]}
print(t)
{1: 'eins', 2: [1, 2, 3, 4], 3: 'drei', 4: ['eins', 'zwei', [5, 6, 7, 8]]}
import textwrap
doc = """Dies ist ein längerer Text, der auch aus
mehreren Zeilen und mehreren Sätzen besteht.
Hier noch ein zweiter Satz sowie ein Halbsatz.
Und noch ein dritter Satz."""
print(textwrap.fill(doc, width=30))
Dies ist ein längerer Text, der auch aus mehreren Zeilen und mehreren Sätzen besteht. Hier noch ein zweiter Satz sowie ein Halbsatz. Und noch ein dritter Satz.
print(doc)
Dies ist ein längerer Text, der auch aus mehreren Zeilen und mehreren Sätzen besteht. Hier noch ein zweiter Satz sowie ein Halbsatz. Und noch ein dritter Satz.
import locale
locale.setlocale(locale.LC_ALL, 'de_DE.UTF-8')
x = 12345678.9
locale.format("%d", x, grouping=True)
'12.345.678'
locale.format("%.2f", x, grouping=True)
'12.345.678,90'
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
locale.format("%.2f", x, grouping=True)
'12,345,678.90'
import struct
with open("Bsp.zip", "rb") as f:
data = f.read()
start = 0
for i in range(4):
fields = struct.unpack("<IHHHHHIIIHH", data[start:start+30])
keys = ["signature","version","flag","comp_method","last_mod_time","last_mod_date","crc32",
"comp_size","uncomp_size","filenamesize","extra_size"]
header = dict(zip(keys,fields))
start += 30
filename = str(data[start:start+header["filenamesize"]],encoding="UTF-8")
start += header["filenamesize"]
extra = data[start:start+header["extra_size"]]
print("{filename:32} - {comp_method:02x}, {last_mod_time:6}, {last_mod_date:6}, {crc32:08x}, {comp_size:6}, {uncomp_size:8}".format(filename=filename,**header))
start += header["extra_size"] + header["comp_size"]
Funktionale Programmierung.ipynb - 08, 39994, 19107, 492ab107, 1379, 7848 Generatoren.ipynb - 08, 38179, 19110, 02add7c8, 23147, 142548 Iteratoren.ipynb - 08, 41609, 19107, ddd01fe2, 1872, 15234 myfile.txt - 08, 41475, 19107, 2b3ae3d5, 67, 74
tag = 3
monat = 5
jahr = 2017
datum = (jahr-1980) << 9 | monat << 5 | tag
datum
19107
tag = datum & 0b00011111
tag
3
monat = (datum >> 5) & 0b00001111
monat
5
jahr = ((datum >> 9) & 0b01111111) + 1980
jahr
2017
sekunden = 52
minuten = 33
stunden = 19
uhrzeit = stunden << 11 | minuten << 5 | sekunden // 2
uhrzeit
39994
sekunden = (uhrzeit & 0b00011111) * 2
sekunden
52
minuten = (uhrzeit >> 5) & 0b00111111
minuten
33
stunden = (uhrzeit >> 11) & 0b00011111
stunden
19
import struct
with open("Bsp.zip", "rb") as f:
data = f.read()
start = 0
for i in range(4):
fields = struct.unpack("<IHHHHHIIIHH", data[start:start+30])
keys = ["signature","version","flag","comp_method","last_mod_time","last_mod_date","crc32",
"comp_size","uncomp_size","filenamesize","extra_size"]
header = dict(zip(keys,fields))
start += 30
filename = str(data[start:start+header["filenamesize"]],encoding="UTF-8")
start += header["filenamesize"]
extra = data[start:start+header["extra_size"]]
tag = header["last_mod_date"] & 0x1f
monat = (header["last_mod_date"] >> 5) & 0x0f
jahr = ((header["last_mod_date"] >> 9) & 0x7f) + 1980
sekunden = (header["last_mod_time"] & 0x1f) * 2
minuten = (header["last_mod_time"] >> 5) & 0x3f
stunden = (header["last_mod_time"] >> 11) & 0x1f
print("{filename:32} - {comp_method:02x}, {last_mod_time:6}, {last_mod_date:6}, {crc32:08x}, {comp_size:6}, {uncomp_size:8}, {jahr}-{monat:02}-{tag:02} {stunden:02}:{minuten:02}".format(filename=filename,tag=tag,monat=monat,jahr=jahr,minuten=minuten,stunden=stunden,**header))
start += header["extra_size"] + header["comp_size"]
Funktionale Programmierung.ipynb - 08, 39994, 19107, 492ab107, 1379, 7848, 2017-05-03 19:33 Generatoren.ipynb - 08, 38179, 19110, 02add7c8, 23147, 142548, 2017-05-06 18:41 Iteratoren.ipynb - 08, 41609, 19107, ddd01fe2, 1872, 15234, 2017-05-03 20:20 myfile.txt - 08, 41475, 19107, 2b3ae3d5, 67, 74, 2017-05-03 20:16
!unzip -v Bsp.zip
Archive: Bsp.zip Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 7848 Defl:N 1379 82% 2017-05-03 19:33 492ab107 Funktionale Programmierung.ipynb 142548 Defl:N 23147 84% 2017-05-06 18:41 02add7c8 Generatoren.ipynb 15234 Defl:N 1872 88% 2017-05-03 20:20 ddd01fe2 Iteratoren.ipynb 74 Defl:N 67 10% 2017-05-03 20:16 2b3ae3d5 myfile.txt -------- ------- --- ------- 165704 26465 84% 4 files