🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° 🐍
2.88K subscribers
780 photos
4 videos
279 links
🐍 Канал ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° языкС Python. ВСматичСскиС ΡƒΡ€ΠΎΠΊΠΈ ΠΈ Π»Π°ΠΉΡ„Ρ…Π°ΠΊΠΈ.

πŸ‘½ Админ - @it_dashka
πŸ”Š ΠšΡƒΠΏΠΈΡ‚ΡŒ Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ: https://telega.in/c/byteofpython

πŸ‘‰ Π§Π°Ρ‚: @abyteofpython
πŸ‘‰ ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ: @byteofpython
Download Telegram
Ѐункция zip

Ѐункция zip. ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ количСство ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ содСрТит элСмСнты ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² с Ρ‚Π΅ΠΌ ΠΆΠ΅ индСксом Ρ‡Ρ‚ΠΎ ΠΈ ΠΊΠ°Ρ€Ρ‚Π΅ΠΆ. Ѐункция zip Π»Π΅Π½ΠΈΠ²Π° - это Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ‡Ρ‚ΠΎ элСмСнты Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½Π° итСрация, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ†ΠΈΠΊΠ»ΠΎΠΌ for/in ΠΈΠ»ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π² список list(zip()).

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ лист ΠΈΠ»ΠΈ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ.

🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° // πŸ’¬ Π§Π°Ρ‚ // #тСория #Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ #zip
Π—Π°ΠΏΠΈΡΡŒ ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π°Ρ€Ρ…ΠΈΠ²Π½Ρ‹Ρ… zip-Ρ„Π°ΠΉΠ»ΠΎΠ²

Zip прСдставляСт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π°Ρ€Ρ…ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΈ сТатия Ρ„Π°ΠΉΠ»ΠΎΠ². И язык Python ΠΈΠΌΠ΅Π΅Ρ‚ встроСнный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ - zipfile. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого модуля ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ zip-Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΡ… содСрТимоС ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² Π½ΠΈΡ… Ρ„Π°ΠΉΠ»Ρ‹. Π’Π°ΠΊΠΆΠ΅ поддСрТиваСтся ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π½ΠΎ Π½Π΅ поддСрТиваСтся Π΄Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Для прСдставлСния zip-Ρ„Π°ΠΉΠ»Π° Π² этом ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ класс ZipFile. Он ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ конструктор:

🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° // πŸ’¬ Π§Π°Ρ‚ // #тСория #запись #Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ #zip #Ρ„Π°ΠΉΠ»Ρ‹
Π—Π°ΠΏΠΈΡΡŒ ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π°Ρ€Ρ…ΠΈΠ²Π½Ρ‹Ρ… zip-Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:
β€’ file: ΠΏΡƒΡ‚ΡŒ ΠΊ zip-Ρ„Π°ΠΉΠ»Ρƒ

β€’ mode: Ρ€Π΅ΠΆΠΈΠΌ открытия Ρ„Π°ΠΉΠ»Π°. ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ значСния:
- r: примСняСтся для чтСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π°
- w: примСняСтся для записи Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°
- a: примСняСтся для добавлСния Π² Ρ„Π°ΠΉΠ»

β€’ compression: Ρ‚ΠΈΠΏ сТатия Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈ записи. ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ значСния:
- ZIP_STORED: архивация Π±Π΅Π· сТатия (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ)
- ZIP_DEFLATED: стандартный Ρ‚ΠΈΠΏ сТатия ΠΏΡ€ΠΈ Π°Ρ€Ρ…ΠΈΠ²Π°Ρ†ΠΈΠΈ Π² zip
- ZIP_BZIP2: сТатиС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ способа BZIP2
- ZIP_LZMA: сТатиС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ способа LZMA

🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° // πŸ’¬ Π§Π°Ρ‚ // #тСория #запись #Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ #zip #Ρ„Π°ΠΉΠ»Ρ‹
Π—Π°ΠΏΠΈΡΡŒ ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π°Ρ€Ρ…ΠΈΠ²Π½Ρ‹Ρ… zip-Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ этот класс прСдоставляСт ряд ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° // πŸ’¬ Π§Π°Ρ‚ // #тСория #запись #Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ #zip #Ρ„Π°ΠΉΠ»Ρ‹
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°.

Для создания Π°Ρ€Ρ…ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² конструктор ZipFile пСрСдаСтся Ρ€Π΅ΠΆΠΈΠΌ "w" ΠΈΠ»ΠΈ "a":

ПослС выполнСния ΠΊΠΎΠ΄Π° Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ пустой Π°Ρ€Ρ…ΠΈΠ²Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» "metanit.zip".

🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° // πŸ’¬ Π§Π°Ρ‚ // #тСория #запись #Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ #zip #Ρ„Π°ΠΉΠ»Ρ‹
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅.

ПослС окончания Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π°Ρ€Ρ…ΠΈΠ²ΠΎΠΌ для Π΅Π³ΠΎ закрытия примСняСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ close():

Но Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ZipFile Ρ‚Π°ΠΊΠΆΠ΅ прСдставляСт ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ контСкста, Ρ‚ΠΎ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ with, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ опрСдСляСт контСкст ΠΈ автоматичСски Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ контСкста:

🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° // πŸ’¬ Π§Π°Ρ‚ // #тСория #запись #Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ #zip #Ρ„Π°ΠΉΠ»Ρ‹
Π—Π°ΠΏΠΈΡΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π°Ρ€Ρ…ΠΈΠ².

Для записи Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π°Ρ€Ρ…ΠΈΠ² примСняСтся Ρ„Π°ΠΉΠ» write():

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ прСдставляСт Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ записиываСтся Π² Π°Ρ€Ρ…ΠΈΠ². Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ - arcname устанавливаСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ имя для Ρ„Π°ΠΉΠ»Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ Π°Ρ€Ρ…ΠΈΠ²Π° (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ это само имя Ρ„Π°ΠΉΠ»Π°). Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ - compress_type прСдставляСт Ρ‚ΠΈΠΏ сТатия, Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ compresslevel - ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ сТатия.

НапримСр, запишСм Π² Π°Ρ€Ρ…ΠΈΠ² "metanit.zip" Ρ„Π°ΠΉΠ» "hello.txt" (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊΠ°ΠΊ прСдполагаСтся, находится Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΠ°ΠΏΠΊΠ΅, Π³Π΄Π΅ ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ скрипт python):

🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° // πŸ’¬ Π§Π°Ρ‚ // #тСория #запись #Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ #zip #Ρ„Π°ΠΉΠ»Ρ‹
Π—Π°ΠΏΠΈΡΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π°Ρ€Ρ…ΠΈΠ². ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅.

Π‘Ρ‚ΠΎΠΈΡ‚ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ "w" ΠΏΡ€ΠΈ всСх ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… записях Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ содСрТимоС Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Ρ‚ΠΈΡ€Π°Ρ‚ΡŒΡΡ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ фактичСски Π°Ρ€Ρ…ΠΈΠ²Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π·Π°Π½ΠΎΠ²ΠΎ. Если Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ zip-Ρ„Π°ΠΉΠ» Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ "a":

🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° // πŸ’¬ Π§Π°Ρ‚ // #тСория #запись #Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ #zip #Ρ„Π°ΠΉΠ»Ρ‹