Π€Π°ΠΉΠ»Ρ‹ ΠΏΠΈΡ‚ΠΎΠ½: Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π€Π°ΠΉΠ»Ρ‹ Π² Python OTUS

Π‘Ρ‚Π°Ρ‚ΡŒΡ расскаТСт ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Python: ΠΎ Π²Π²ΠΎΠ΄Π΅ ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ, Ρ‡Ρ‚Π΅Π½ΠΈΠΈ, записи, Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Π€Π°ΠΉΠ» прСдставляСт собой Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…, сохранСнных Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ β€” filename (имя Ρ„Π°ΠΉΠ»Π°, name of file).

Π’ языкС программирования Python Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ 2 Π²ΠΈΠ΄Π° Ρ„Π°ΠΉΠ»ΠΎΠ²:

β€” тСкстовыС;

β€” Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅.

ΠŸΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

ВСкстовыС Ρ„Π°ΠΉΠ»Ρ‹. Π€ΠΎΡ€ΠΌΠ°Ρ‚ .txt

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ‚Π°ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π²ΠΏΠΎΠ»Π½Π΅ понятно Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎΠ± ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… общСпринятых символах, тСкстС, Ρ†ΠΈΡ„Ρ€Π°Ρ… ΠΈ Ρ‚. ΠΏ. Π’Π°ΠΊΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚ΠΎΠΌ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠΌΠΈ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΌΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ.

Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ тСкст хранят Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ„ΠΎΡ€ΠΌΠ΅ .txt, Π½ΠΎ ΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.rtf (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ Β«Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΎΠ±ΠΎΠ³Π°Ρ‰Π΅Π½Π½ΠΎΠ³ΠΎ тСкста»).

Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Π€ΠΎΡ€ΠΌΠ°Ρ‚ .bin

Π’ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… осущСствляСтся Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ (ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡΒ  лишь Π½ΡƒΠ»ΠΈ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹). Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±ΠΈΡ‚ΠΎΠ². Как слСдуСт ΠΈΠ· ΠΏΠΎΠ΄Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, для хранСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Β .bin.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

По сути, практичСски Π»ΡŽΠ±ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ с Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° 3 Π³Π»Π°Π²Π½Ρ‹Ρ… этапа:

  1. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅.
  2. НСпосрСдствСнно Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, запись).
  3. Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅.

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅. ΠœΠ΅Ρ‚ΠΎΠ΄ open

Π’ Β«ΠŸΠΈΡ‚ΠΎΠ½Π΅Β» сущСствуСт встроСнная функция open. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΅Π΅, Π²Ρ‹ смоТСтС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π½Π° ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. ВСхничСски, Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ создании Π½Π° основС Ρ„Π°ΠΉΠ»Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Бинтаксис ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ прост:

f = open(file_name, access_mode)

Π§Ρ‚ΠΎ здСсь Ρ‡Ρ‚ΠΎ:

  • file_nameΒ β€” это имя Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π΄ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ;
  • access_modeΒ β€” это Ρ€Π΅ΠΆΠΈΠΌ открытия Ρ„Π°ΠΉΠ»Π°. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, запись ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Если Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Π±ΡƒΠ΄ΡƒΡ‚ справСдливы настройки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‚Π΅ Π΅ΡΡ‚ΡŒ станСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π΅ΠΆΠΈΠΌ чтСния (r).

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² открытия смотритС Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅:

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ созданиС тСкстового Ρ„Π°ΠΉΠ»Π° test. txt с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ сохранСниСм Π΅Π³ΠΎ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ созданный Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ чтСния ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ:

f = open('test.txt','r')Β 

Π—Π΄Π΅ΡΡŒΒ f прСдставляСт собой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ-ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ„Π°ΠΉΠ»Β test.txt.

ИдСм Π΄Π°Π»Π΅Π΅. Код Π½ΠΈΠΆΠ΅ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ содСрТимоС Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± этом Ρ„Π°ΠΉΠ»Π΅.

>>> print(*f) # Π²Ρ‹Π²ΠΎΠ΄ содСрТимого

Hello, Otus!

>>> print(f) # Π²Ρ‹Π²ΠΎΠ΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

<_io.TextIOWrapper name='test.txt' mode='r' encoding='cp1252'>

Π£Ρ‡Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС «Виндовс» стандартная ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° β€” это cp1252, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π² Linux β€”Β utf-08.

Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅. ΠœΠ΅Ρ‚ΠΎΠ΄ close

Π Π°Π· ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΈ, Π½Π°Π΄ΠΎ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ β€” это высвободит рСсурсы. Π―Π·Ρ‹ΠΊ программирования Python автоматичСски Π·Π°ΠΊΡ€ΠΎΠ΅Ρ‚ Ρ„Π°ΠΉΠ» Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ присвоСн Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ.

Для закрытия Π΅ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² дСйствий.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ β„–1

Один ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ простых способов. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Β close.

f = open('test.txt','r')

# Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с Ρ„Π°ΠΉΠ»ΠΎΠΌ

f.close()

ВсС, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚ (closed). Π—Π°ΠΊΡ€Ρ‹Π² Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ Π½Π΅ смоТСтС Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚Π΅ ΠΏΠΎ Π½ΠΎΠ²ΠΎΠΉ.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ β„–2

МоТно ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒΒ try/finally. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ„Π°ΠΉΠ» закроСтся автоматичСски, Ссли ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π½ΠΈΠΌ ΠΏΡ€ΠΈΠ²Π΅Π΄ΡƒΡ‚ ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌ. Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ остановится ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.

Бинтаксис создания ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

f = open('test.txt','r')

try:

Β Β  # Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с Ρ„Π°ΠΉΠ»ΠΎΠΌ

finally:

Β Β  f.close()

Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» слСдуСт ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄ΠΎ срабатывания инструкции try.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ β„–3

Π’ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ случаС пригодится инструкция with, ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ посрСдством инкапсуляции Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ очисткС ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ.

Π’ΡƒΡ‚ ΡƒΠΆΠ΅ инструкция closeΒ Π½ΡƒΠΆΠ½Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊΒ withΒ Π·Π°ΠΊΡ€ΠΎΠ΅Ρ‚ Ρ„Π°ΠΉΠ» автоматичСски.

РСализация Π² ΠΊΠΎΠ΄Π΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ проста:

with open('test.txt') as f:

Β Β Β  # Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ

Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись Π² Ρ„Π°ΠΉΠ»

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Π΅Π΅ сохранСниС (save) Π² Π±ΡƒΡ„Π΅Ρ€ памяти.

Ѐункция read

ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ΡΡ для чтСния содСрТимого послС открытия Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ чтСния (r).

Π’ΠΎΡ‚, ΠΊΠ°ΠΊ это выглядит:

file.read(size)

Π§Ρ‚ΠΎ здСсь Ρ‡Ρ‚ΠΎ:

  • fileΒ β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ„Π°ΠΉΠ»Π°;
  • sizeΒ β€” это число символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ. Если ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ число Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ.

>>> f = open('test.txt','r')

>>> f.read(7)Β  # Ρ‡ΠΈΡ‚Π°Π΅ΠΌ сСмь символов ΠΈΠ· test.txt

Ѐункция readline

Π­Ρ‚ΠΎ функция обСспСчиваСт построчноС Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ (считываниС) содСрТимого. Π•Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с большими Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° позволяСт ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ строкС, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ любой.

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° создадим test.txt со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ строками:

This is Otus for developers 1.

This is Otus for developers 2.

This is Otus for developers 3.

И Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ readline:

x = open('test.txt','r')

x.readline()Β  # Ρ‡ΠΈΡ‚Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку

This is Otus for developers 1.

>>> x.readline(2)Β  # Ρ‡ΠΈΡ‚Π°Π΅ΠΌ 2-ю строку

This is Otus for developers 2.

>>> x.readlines()Β  # Ρ‡ΠΈΡ‚Π°Π΅ΠΌ всС строки сразу

['This is Otus for developers 1.','This is Otus for developers 2.','This is Otus for developers 3.']

Ѐункция write

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ сохранСниС, Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽΒ write. Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π² Π±ΡƒΡ„Π΅Ρ€ памяти Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ для записи (ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ находятся Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅).

Бинтаксис нСслоТСн:

file.write(string)

Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ„Π°ΠΉΠ», Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π² Π±ΡƒΡ„Π΅Ρ€Π΅, Π±ΡƒΠ΄Π΅Ρ‚ создан Π½ΠΎΠ²Ρ‹ΠΉ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Π° supertest.txt Ρƒ нас Π½Π΅Ρ‚. Однако ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π΅Π³ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ чтСния, ΠΎΠ½ появится:

f = open('supertest.txt','w')Β  # ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ записи

f.write('Hello \n Otus')Β  # пишСм Hello Otus Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚

Hello

Otus

f.close()Β  # Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅. Ѐункция rename

ΠœΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² (filenames). Вопрос ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ посрСдством Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ rename. Но Ρ‡Ρ‚ΠΎΠ±Ρ‹ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, сначала Π½Π°Π΄ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ os.

Бинтаксис:

import os

os.rename(src,dest)

Π§Ρ‚ΠΎ здСсь Ρ‡Ρ‚ΠΎ:

  • srcΒ β€” это Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π½Π°Π΄ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ name;
  • destΒ β€” это Π½ΠΎΠ²ΠΎΠ΅ имя.

Π’ΠΎΡ‚, ΠΊΠ°ΠΊ это выглядит Π² ΠΊΠΎΠ΄Π΅:

import os

# ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°Π΅ΠΌ otus1.txt Π² otus2.txt

>>> os. rename("otus1.txt","otus2.txt")

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ основныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ (files) Π² Β«ΠŸΠ°ΠΉΡ‚ΠΎΠ½Β»:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π€Π°ΠΉΠ»Ρ‹ ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Python

Разрабатывая прилоТСния Π²Π°ΠΌ придСтся Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ большиС ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π½Π΅ Ρ‚Π΅Ρ€ΡΠ»ΠΈΡΡŒ ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.Β Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π²Π°ΠΆΠ½ΠΎ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ошибки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΊ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΌΡƒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Для этого Π² Python ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ — ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ для управлСния ошибок.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ страницы:
1. Π§Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°Β 
Β  Β  1.2. Π§Ρ‚Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π½ΠΈΠΌΠΈ
Β  Β  1.3. Анализ тСкста из Ρ„Π°ΠΉΠ»Π°
2. Π—Π°ΠΏΠΈΡΡŒ Π² Ρ„Π°ΠΉΠ»
Β  Β  2. 1.Β Π—Π°ΠΏΠΈΡΡŒ Π² пустой Ρ„Π°ΠΉΠ»
Β  Β  2.2. ΠœΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Π°Ρ запись Π² Ρ„Π°ΠΉΠ»
Β  Β  2.3. ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ Ρ„Π°ΠΉΠ»Ρƒ
3. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ
Β  Β  3.1. Π‘Π»ΠΎΠΊΠΈ try-except
Β  Β  3.2. Π‘Π»ΠΎΠΊΠΈΒ try-except-else
Β  Β  3.3.Β Π‘Π»ΠΎΠΊΠΈΒ try-except с тСкстовыми Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ
Β  Β  3.4. Ошибки Π±Π΅Π· увСдомлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

Β 

Β 

Β 

Β 

Β 

Β 

Β 

Β 

Β 

Β 

Β 

Β 

1. Π§Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π² Python

Π’ Ρ„Π°ΠΉΠ»Π°Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ любой объСм Π΄Π°Π½Π½Ρ‹Ρ…, начиная ΠΎΡ‚ нСбольшого рассказа ΠΈ Π΄ΠΎ сохранСния истории ΠΏΠΎΠ³ΠΎΠ΄Ρ‹ Π·Π° столСтия.Β Π§Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ простой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΅Π³ΠΎ содСрТимоС Π½Π° экран. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ я Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» с числом «ΠŸΠΈ» с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ 10 Π·Π½Π°ΠΊΠΎΠ² послС запятой. Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ прямо здСсь ( pi_10.

txtΒ ) ΠΈΠ»ΠΈ самим ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ тСкстовый Ρ„Π°ΠΉΠ» ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ Π»ΡŽΠ±Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ содСрТимоС Π½Π° экран:

with open(‘pi_10.txt’) as file_pi:
Β Β  Β digits = file_pi.read()
print(digits)

Код начинаСтся с ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова with. ΠŸΡ€ΠΈ использованиС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова with ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ» открываСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ open(), Π° закрываСтся автоматичСски послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠ°Β with ΠΈ Π²Π°ΠΌ Π½Π΅ придСтся Π² ΠΊΠΎΠ½Ρ†Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ close(). Π€Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ явными Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ open() ΠΈ close(). Ѐункция open() ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ — имя ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, Π² нашСм случаС ‘pi_10.txt’.Β Python ΠΈΡ‰Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Π³Π΄Π΅ хранится Ρ„Π°ΠΉΠ» Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Ѐункция open() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ»Β ‘pi_10.txt’.Β Python сохраняСт этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉΒ file_piΒ .Β Β 

ПослС появлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Β ‘pi_10.txt’,Β ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ read(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ всС содСрТимоС Ρ„Π°ΠΉΠ»Π° ΠΈ сохраняСт Π΅Π³ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ строкС Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ contents.

Π’ ΠΊΠΎΠ½Ρ†Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ print содСрТимоС выводится Π½Π° экран. Запустив этот Ρ„Π°ΠΉΠ», ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π΄Π°Π½Π½Ρ‹Π΅, находящиСся Π² нашСм Ρ„Π°ΠΉΠ»Π΅Β ‘pi_10.txt’.

3.1415926535

Π’ случаС, Ссли Ρ„Π°ΠΉΠ» располоТСн Π½Π΅ Π² ΠΎΠ΄Π½ΠΎΠΌ каталогС с Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Python искал Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ мСстС. БущСствуСт Π΄Π²Π° ΠΏΡƒΡ‚ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ располоТСниС Ρ„Π°ΠΉΠ»Π°:

ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΏΡ€ΠΈΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Python ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ задаСтся ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находится Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

with open(‘files/имя_Ρ„Π°ΠΉΠ»Π°.txt’) as file:

  • ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ.Β 

ΠœΠ΅ΡΡ‚ΠΎΠ½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π½Π΅ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ находится ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΄Π»ΠΈΠ½Π½Π΅Π΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…, поэтому ΠΈΡ… Π»ΡƒΡ‡ΡˆΠ΅

ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ open().Β 

file_path = ‘/Users/Desktop/files/имя_Ρ„Π°ΠΉΠ»Π°.txt’
with open(file_path) as file:

Π‘ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΌΠΈ путями ΠΌΠΎΠΆΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· любого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° вашСй систСмы. Β 

Β 

Β 

1.2. Π§Ρ‚Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° Python ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π½ΠΈΠΌΠΈ

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±Ρ‹Π» Ρ„Π°ΠΉΠ» с 10 Π·Π½Π°ΠΊΠ°ΠΌΠΈ послС запятой. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Ρ„Π°ΠΉΠ» с ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠΌ Π·Π½Π°ΠΊΠΎΠ² числа «ΠŸΠΈ» послС запятой. Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ число «ΠŸΠΈ» с ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠΌ Π·Π½Π°ΠΊΠΎΠ² послС запятой ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΡΡŽΠ΄Π°( ‘pi_1000000.txt’ ). Π˜Π·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π΅ придСтся, просто Π·Π°ΠΌΠ΅Π½ΠΈΠΌ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Python.Β 

with open(‘pi_1000000.txt’) as file_pi:
Β Β  Β digits = file_pi.read()
print(digits[:102])
print(len(digits))

Π’Ρ‹Π²Π΅Π΄Π΅ΠΌ Π½Π° экран ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 100 Π·Π½Π°ΠΊΠΎΠ² послС запятой. Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ len, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ Ρ„Π°ΠΉΠ»Π°

3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

1000002

Из Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ строка содСрТит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «ΠŸΠΈ» с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ 1 000 000 Π·Π½Π°ΠΊΠΎΠ² послС запятой. Π’ Python Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° Π΄Π»ΠΈΠ½Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, СдинствСнноС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ это объСм памяти вашСй систСмы. Β 

ПослС сохранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ всС Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π»ΠΈ Π² число «ΠŸΠΈ» Π΄Π°Ρ‚Π° вашСго дня роТдСния. НапишСм Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π»ΠΈ Π΄Π°Ρ‚Π° дСнь роТдСния Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ числа «ΠŸΠΈ»:

with open(‘pi_1000000.txt’) as file_pi:
Β Β  Β digits = file_pi.read()
birthday = input(«Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π΄Π°Ρ‚Ρƒ дня роТдСния: «)
if birthday Β in digits:
Β Β  Β print(«Π’Π°Ρˆ дСнь Ρ€ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² число ‘Пи'»)

else:
Β Β  Β print(«Π’Π°Ρˆ дСнь Ρ€ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² число ‘Пи'»)

Начало ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ измСнилось, Ρ‡ΠΈΡ‚Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» ΠΈ сохраняСм Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ digits. Π”Π°Π»Π΅Π΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅Β ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ input ΠΈ сохраняСм Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ birstday. Π—Π°Ρ‚Π΅ΠΌ провСряСм Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ birstday Π²Β digits с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ if-else. Запустив нСсколько Ρ€Π°Π· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π΄Π°Ρ‚Ρƒ дня роТдСния: 260786
Π’Π°Ρˆ дСнь Ρ€ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² число ‘Пи’


Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π΄Π°Ρ‚Ρƒ дня роТдСния: 260884
Π’Π°Ρˆ дСнь Ρ€ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² число ‘Пи’

Π’ зависимости ΠΎΡ‚ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вхоТдСния ΠΈΠ»ΠΈ Π½Π΅ вхоТдСния дня роТдСния Π² число «ΠŸΠΈ»

Π’Π°ΠΆΠ½ΠΎ: Читая Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· тСкстового Ρ„Π°ΠΉΠ»Π°, PythonΒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ вСсь тСкст ΠΊΠ°ΠΊ строку.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌ Π² числовом контСкстС, Ρ‚ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠΉΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ†Π΅Π»ΠΎΠ΅ число Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ int() ΠΈΠ»ΠΈ Π² вСщСствСнноС число Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ float().

Β 

Β 

1.3. Анализ тСкста ΠΈΠ· Ρ„Π°ΠΉΠ»Π°Β Π½Π° Python

Python ΠΌΠΎΠΆΠ΅Ρ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹, содСрТащиС Ρ†Π΅Π»Ρ‹Π΅ ΠΊΠ½ΠΈΠ³ΠΈ. Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ ΠΊΠ½ΠΈΠ³Ρƒ «ΠΠ»ΠΈΡΠ° Π² странС чудСс» ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство слов Π² ΠΊΠ½ΠΈΠ³Π΅. ВСкстовый Ρ„Π°ΠΉΠ» с ΠΊΠ½ΠΈΠ³ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ здСсь(‘ alice ‘) ΠΈΠ»ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅. НапишСм ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая подсчитаСт количСство слов Π² ΠΊΠ½ΠΈΠ³Π΅ ΠΈ сколько Ρ€Π°Π· повторяСтся имя Алиса Π² ΠΊΠ½ΠΈΠ³Π΅.

filename = ‘alice.txt’

with open(filename, encoding=’utf-8′) as file:
Β Β  Β contents = file.read()
n_alice = contents.lower().count(‘алиса’)
words = contents.split()
n_words = len(words)

print(f»ΠšΠ½ΠΈΠ³Π° ‘Алиса Π² странС чудСс’ содСрТит {n_words} слов.»)
print(f»Π˜ΠΌΡ Алиса повторяСтся {n_alice} Ρ€Π°Π·.»)

ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈΒ Ρ„Π°ΠΉΠ»Π° добавился Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Β encoding=’utf-8′.

 Он Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° вашСй систСмы Π½Π΅ совпадаСт с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. ПослС чтСния Ρ„Π°ΠΉΠ»Π°, сохраним Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ contents.

Для подсчСта вхоТдСния слова ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉΒ Π² строкС моТно Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ count(), Π½ΠΎ ΠΏΡ€Π΅ΠΆΠ΄Π΅ привСсти всС слова ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ рСгистру Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉΒ lower(). ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ сохраним Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ n_alice.Β 

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство слов Π² тСксС, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ split(), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для построСния списка слов Π½Π° основС строки. ΠœΠ΅Ρ‚ΠΎΠ΄Β split() раздСляСт строку Π½Π° части, Π³Π΄Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ ΠΏΡ€ΠΎΠ±Π΅Π» ΠΈ сохраняСт всС части строки Π² элСмСнтах списка. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Β split():

title = ‘Алиса Π² странС чудСс’
print(title.split())

[‘Алиса’, ‘Π²’, ‘странС’, ‘чудСс’]

ПослС использования ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Β split(), сохраним список Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

words ΠΈ Π΄Π°Π»Π΅Π΅ подсчитаСм количСство слов Π² спискС, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ len(). ПослС подсчСта всСх Π΄Π°Π½Π½Ρ‹Ρ…, Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Π½Π° экран Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Книга ‘Алиса Π² странС чудСс’ содСрТит 28389 слов.
Имя Алиса повторяСтся 419 Ρ€Π°Π·.

Β 

2.1.Β Π—Π°ΠΏΠΈΡΡŒ Π² пустой Ρ„Π°ΠΉΠ» Π² Python

Π‘Π°ΠΌΡ‹ΠΉ простой способ сохранСния Π΄Π°Π½Π½Ρ‹Ρ…, это Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΡ… Π² Ρ„Π°ΠΉΠ». Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ тСкс Π² Ρ„Π°ΠΉΠ», трСбуСтся Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ open() со Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сообщит Python Ρ‡Ρ‚ΠΎ трСбуСтся Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ». ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ записи простого сообщСния Π² Ρ„Π°ΠΉΠ» Π½Π° Python:

filename = ‘memory.txt’

with open(filename, ‘w’) as file:
Β Β  Β file.write(«Π―Π·Ρ‹ΠΊ программирования Python»)

Для Π½Π°Ρ‡Π°Π»Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ Ρ‚ΠΈΠΏ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈ сохраним Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ filename. Π—Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ open() ΠΏΠ΅Ρ€Π΅Π΄Π°Π΄ΠΈΠΌ Π΄Π²Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ содСрТит имя ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ‘ w ‘ сообщаСт Python, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ записи. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строчкС ΠΌΠ΅Ρ‚ΠΎΠ΄ write() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для записи строки Π² Ρ„Π°ΠΉΠ». ΠžΡ‚ΠΊΡ€Ρ‹Π² Ρ„Π°ΠΉΠ» ‘

memory.txtΒ ‘ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π² Π½Π΅ΠΌ строку:

Π―Π·Ρ‹ΠΊ программирования Python

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠΉΡΡ Ρ„Π°ΠΉΠ» Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ отличаСтся ΠΎΡ‚ Π»ΡŽΠ±Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… тСкстовых Ρ„Π°ΠΉΠ»Π°Ρ… Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, с Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ всС Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. Β 

Π’Π°ΠΆΠ½ΠΎ: ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ Ρ„Π°ΠΉΠ» Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ записи ‘ w ‘, Ссли Ρ„Π°ΠΉΠ» ΡƒΠΆΠ΅ сущСствуСт, Ρ‚ΠΎ Python ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΡ‚ Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ„Π°ΠΉΠ»Π°.

Π€Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ…:

  • Ρ‡Ρ‚Π΅Π½ΠΈΠ΅Β ‘ r ‘
  • запись ‘ w ‘
  • присоСдинСниС ‘ a ‘
  • Ρ€Π΅ΠΆΠΈΠΌ ΠΊΠ°ΠΊ чтСния,Β Ρ‚Π°ΠΊ ΠΈ записи ‘ r+ ‘

Β 

Β 

2.2. ΠœΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Π°Ρ запись Π² Ρ„Π°ΠΉΠ» Π½Π° Python

ΠŸΡ€ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈΒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ write() символы Π½ΠΎΠ²ΠΎΠΉ строки Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² записываСмый Ρ„Π°ΠΉΠ»:

filename = ‘memory.txt’

with open(filename, ‘w’) as file:
Β Β  Β file.write(«Π―Π·Ρ‹ΠΊ программирования Python»)
Β Β  Β file.write(«Π―Π·Ρ‹ΠΊ программирования Java»)
Β Β  Β file.write(«Π―Π·Ρ‹ΠΊ программирования Perl»)

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π² Ρ„Π°ΠΉΠ» ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ всС строки склСились:

Π―Π·Ρ‹ΠΊ программирования PythonΠ―Π·Ρ‹ΠΊ программирования JavaΠ―Π·Ρ‹ΠΊ программирования Perl

Для написания ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сообщСния с Π½ΠΎΠ²ΠΎΠΉ строки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ символ Π½ΠΎΠ²ΠΎΠΉ строки \n

filename = ‘memory. txt’

with open(filename, ‘w’) as file:
Β Β  Β file.write(«Π―Π·Ρ‹ΠΊ программирования Python\n»)
Β Β  Β file.write(«Π―Π·Ρ‹ΠΊ программирования Java\n»)
Β Β  Β file.write(«Π―Π·Ρ‹ΠΊ программирования Perl\n»)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π―Π·Ρ‹ΠΊ программирования Python
Π―Π·Ρ‹ΠΊ программирования Java
Π―Π·Ρ‹ΠΊ программирования Perl

Β 

2.3. ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π½Π° PythonΒ 

Для добавлСния Π½ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ», вмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ постоянно ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ», ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ присоСдинСния ‘ a ‘. ВсС Π½ΠΎΠ²Ρ‹Π΅ строки добавятся Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°. Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ созданный Ρ„Π°ΠΉΠ» ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»Π° 2.2Β ‘memory.txt’.Β Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π³ΠΎ Π΅Ρ‰Π΅ ΠΏΠ°Ρ€Ρƒ строк.

filename = ‘memory.txt’

with open(filename, ‘a’) as file:
Β Β  Β file.write(«Hello world\n»)
Β Β  Β file.write(«ΠŸΠΎΠ»Π΅Ρ‚ Π½Π° Π»ΡƒΠ½Ρƒ\n»)

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ добавятся Π΄Π²Π΅ строки:

Π―Π·Ρ‹ΠΊ программирования Python
Π―Π·Ρ‹ΠΊ программирования Java
Π―Π·Ρ‹ΠΊ программирования Perl
Hello world
ΠŸΠΎΠ»Π΅Ρ‚ Π½Π° Π»ΡƒΠ½Ρƒ

Β 

Β 

3.

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Python

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈΒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ошибки, для управлСния ΠΈΠΌΠΈ Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ. Когда Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° продолТится, Π° Ссли Π½Π΅Ρ‚, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° остановится ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ трассировку с ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠΌ ΠΎΠ± ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π±Π»ΠΎΠΊΠ°Ρ… try-except. Π‘ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ try-except ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ Π² Ρ‚ΠΎΠΌ случаС, Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ.

3.1. Π‘Π»ΠΎΠΊΠΈ try-except Π½Π° Python

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΡΡ‚ΠΎΠΉΒ ΠΎΡˆΠΈΠ±ΠΊΠΈ дСлСния Π½Π° ноль:

print(7/0)

Traceback (most recent call last):
Β  File «example.py», line 1, in <module>
Β  Β  print(7/0)
ZeroDivisionError: division by zero

Если Π² вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ появлСниС ошибки, Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ€Π°Π½Π΅Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±Π»ΠΎΠΊΒ try-except для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибки ZeroDivisionError с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±Π»ΠΎΠΊΠ°Β try-except:

try:
Β Β  Β print(7/0)
except ZeroDivisionError:
Β Β  Β print(«Π”Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ноль Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ»)

Команда print(7/0) ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π° Π² Π±Π»ΠΎΠΊ try. Если ΠΊΠΎΠ΄ Π² Π±Π»ΠΎΠΊΠ΅ try выполняСтся ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Ρ‚ΠΎ Python пропускаСт Π±Π»ΠΎΠΊ except.Β  Если ΠΆΠ΅ ΠΊΠΎΠ΄ Π² Π±Π»ΠΎΠΊΠ΅ try создал ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ρ‚ΠΎ Python ΠΈΡ‰Π΅Ρ‚ Π±Π»ΠΎΠΊ except ΠΈ запускаСт ΠΊΠΎΠ΄ Π² этом Π±Π»ΠΎΠΊΠ΅. Π’ нашСм случаС Π² Π±Π»ΠΎΠΊΠ΅ except выводится сообщСниС «Π”Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ноль Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ».Β ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этого ΠΊΠΎΠ΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ понятноС сообщСниС:

Π”Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ноль Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ

Если Π·Π° ΠΊΠΎΠ΄ΠΎΠΌΒ try-except слСдуСт Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ΄, Ρ‚ΠΎ Python ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.Β 

Β 

3.2. Π‘Π»ΠΎΠΊΒ try-except-else Π½Π° Python

НапишСм простой ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ дСлСния Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° экран. Π‘Ρ€Π°Π·Ρƒ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ дСлСния Π½Π° ноль  ZeroDivisionError ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π±Π»ΠΎΠΊ else ΠΏΡ€ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° try.

while True:
Β Β  Β first_number = input(«Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число: «)
Β Β  Β if first_number == ‘q’:
Β Β  Β Β Β  Β break
Β Β  Β second_number = input(«Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число: «)
Β  Β Β if second_number == ‘q’:
Β Β  Β Β Β  Β break
Β Β  Β try:
Β Β  Β Β Β  Β a = int(first_number) / int(second_number)
Β Β  Β except ZeroDivisionError:
Β Β  Β Β Β  Β print(«Π”Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ноль Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ»)
Β Β  Β else:
Β Β  Β Β Β  Β print(f»Π§Π°ΡΡ‚Π½ΠΎΠ΅ Π΄Π²ΡƒΡ… чисСл Ρ€Π°Π²Π½ΠΎ {a}»)

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число (first_number), Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ (second_number). Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π²Π²Π΅Π» » q « для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° продолТаСтся. Π’ Π±Π»ΠΎΠΊ try ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ ΠΊΠΎΠ΄, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ появлСниС ошибки. Π’ случаС отсутствия ошибки дСлСния, выполняСтся ΠΊΠΎΠ΄ else ΠΈ Python Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° экран. Π’ случаС ошибки ZeroDivisionError выполняСтся Π±Π»ΠΎΠΊ except ΠΈ выводится сообщСниС ΠΎ Π·Π°ΠΏΡ€Π΅Ρ‚Π΅ дСлСния Π½Π° ноль, Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ своС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Запустив ΠΊΠΎΠ΄ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹:

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число: 30
Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число: 5
ЧастноС Π΄Π²ΡƒΡ… чисСл Ρ€Π°Π²Π½ΠΎ 6.0
Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число: 7
Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число: 0
Π”Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ноль Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ
Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число:Β Β q

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ дСйствиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ появлСнии ошибки Π½Π΅ ΠΏΡ€Π΅Ρ€Π²Π°Π»ΠΎΡΡŒ.

Β 

Β 

3.3. Π‘Π»ΠΎΠΊΒ Β try-except с тСкстовыми Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π½Π° Python

Одна ΠΈΠ· стандартных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, это отсутствиС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ» находится Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС ΠΈ Python Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π΅Π³ΠΎ Π½Π°ΠΉΡ‚ΠΈ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ»:

filename = ‘alice_2.txt’

with open(filename, encoding=’utf-8′) as file:
Β Β  Β contents = file.read()

Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π½Π΅ сущСствуСт, Python Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅:

Traceback (most recent call last):
Β  File «example.py», line 3, in <module>
Β  Β  with open(filename, encoding=’utf-8′) as file:
FileNotFoundError: [Errno 2] No such file or directory: ‘alice_2.txt’

FileNotFoundError — это ошибка отсутствия Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±Π»ΠΎΠΊΠ° try-except ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π΅Π΅:

filename = ‘alice_2.txt’

try:
Β Β  Β with open(filename, encoding=’utf-8′) as file:
Β Β  Β Β Β  Β contents = file.read()
except FileNotFoundError:
Β Β  Β print(f»Π—Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ» {filename } Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½»)

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΡ€ΠΈ отсутствии Ρ„Π°ΠΉΠ»Π° ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

Π—Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ» alice_2.txt Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½

Β 

3.4. Ошибки Π±Π΅Π· увСдомлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΌΡ‹ сообщали ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…. Π’ Python Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ Π½Π΅ ΡΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΎ Π½Π΅ΠΉ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ дальшС. Для этого Π±Π»ΠΎΠΊ try ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, Π° Π² Π±Π»ΠΎΠΊΠ΅ except Π²Ρ‹ прописываСтС Python Π½Π΅ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… дСйствий с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pass. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ошибки Π±Π΅Π· увСдомлСния:

ilename = ‘alice_2.txt’

try:
Β Β  Β with open(filename, encoding=’utf-8′) as file:
Β Β  Β Β Β  Β contents = file.read()
except FileNotFoundError:
Β  Β  pass

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΡ€ΠΈ запускС этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ отсутствия Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚.

Β 

Β 

Π”Π°Π»Π΅Π΅:Β Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ json. Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Python

Назад:Β ΠšΠ»Π°ΡΡΡ‹ Π² Python

Β 

Please enable JavaScript to view the comments powered by Disqus.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ ΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Python (с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ)

Π’ этом руководствС ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ ΠΎΠ± ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ Π² Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ².

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ β€” это Π½Π°Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° называСтся ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ.

Python ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ os , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт Π½Π°ΠΌ мноТСство ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ (Π° Ρ‚Π°ΠΊΠΆΠ΅ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ).


ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² Python

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ getcwd() модуля os .

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² Π²ΠΈΠ΄Π΅ строки. НапримСр,

 ΠΈΠΌΠΏΠΎΡ€Ρ‚ ОБ
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (os.getcwd())
# Π’Ρ‹Π²ΠΎΠ΄: C:\Program Files\PyScripter 

Π—Π΄Π΅ΡΡŒ getcwd() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² Π²ΠΈΠ΄Π΅ строки.


ИзмСнСниС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² Python

Π’ Python ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ chdir() .

Новый ΠΏΡƒΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ прСдоставлСн этому ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π² Π²ΠΈΠ΄Π΅ строки. И ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊΠΎΡΡƒΡŽ Ρ‡Π΅Ρ€Ρ‚Ρƒ /, Ρ‚Π°ΠΊ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΊΠΎΡΡƒΡŽ Ρ‡Π΅Ρ€Ρ‚Ρƒ \ для раздСлСния элСмСнтов ΠΏΡƒΡ‚ΠΈ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€,

 import os
# ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³
os.chdir('C:\\Python33')
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (os.getcwd())
Π’Ρ‹Π²ΠΎΠ΄: C:\Python33 

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ использовали ΠΌΠ΅Ρ‚ΠΎΠ΄ chdir() для измСнСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ строки Π½Π° Ρ‡Π΄ΠΈΡ€() .


Бписок ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Python

ВсС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° listdir() .

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΡƒΡ‚ΡŒ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎ этому ΠΏΡƒΡ‚ΠΈ.

Если ΠΏΡƒΡ‚ΡŒ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.

 ΠΈΠΌΠΏΠΎΡ€Ρ‚ ОБ
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (os.getcwd())
C:\ΠŸΠΈΡ‚ΠΎΠ½33
# список всСх ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²
os.listdir()
['DLL',
'Π”ΠΎΠΊ',
'Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ',
'Π›ΠΈΠ±',
'Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ',
'Π›Π˜Π¦Π•ΠΠ—Π˜Π―.txt',
'ΠΠžΠ’ΠžΠ‘Π’Π˜.txt',
'python.exe',
'pythonw.exe',
'README.txt',
'Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹',
'Ρ‚ΠΊΠ»',
'Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹']
os.listdir('G:\\')
['$RECYCLE.BIN',
'Кино',
'ΠœΡƒΠ·Ρ‹ΠΊΠ°',
'Π€ΠΎΡ‚ΠΎ',
'Ряд',
Β«Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ систСмном Ρ‚ΠΎΠΌΠ΅Β»] 

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² Python

Π’ Python ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ mkdir() .

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΡƒΡ‚ΡŒ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ. Если ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ создаСтся Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

 os.mkdir('тСст')
os.listdir()
['test'] 

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Π°

ΠœΠ΅Ρ‚ΠΎΠ΄ rename() ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ».

Для пСрСимСнования любого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Π°, rename() ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° основных Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°:

  • староС имя Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°
  • Π½ΠΎΠ²ΠΎΠ΅ имя Π² качСствС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€,

 import os
os.listdir()
['ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°']
# ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³
os.rename('тСст','new_one')
os.listdir()
['new_one'] 

Π—Π΄Π΅ΡΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ 'test ‘ пСрСимСновываСтся Π² 'new_one' с использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° rename() .


Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Π° Π² Python

Π’ Python ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ remove() ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ rmdir() для удалСния Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.

Π‘Π½Π°Ρ‡Π°Π»Π° Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ remove() для удалСния Ρ„Π°ΠΉΠ»Π°,

 import os
# ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» "myfile.txt"
os.remove("myfile.txt") 

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ использовали ΠΌΠ΅Ρ‚ΠΎΠ΄ remove() для удалСния Ρ„Π°ΠΉΠ»Π° "myfile.txt" .

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ rmdir() для удалСния пустого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°,

 import os
# ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ пустой ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ "mydir"
os.rmdir("mydir") 

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ нСпустой ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ rmtree() Π²Π½ΡƒΡ‚Ρ€ΠΈ модуля Shutil . НапримСр,

 ΠΈΠΌΠΏΠΎΡ€Ρ‚Π½Ρ‹ΠΉ ΡˆΠ°Ρ‚ΠΈΠ»
# ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ "mydir" ΠΈ всС Π΅Π³ΠΎ содСрТимоС
Shutil.rmtree("mydir") 

Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π·Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π½ΠΎ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, поэтому ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ остороТны ΠΏΡ€ΠΈ ΠΈΡ… использовании.

Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись Ρ„Π°ΠΉΠ»ΠΎΠ² CSV

Π’ этом руководствС ΠΌΡ‹ научимся Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ CSV Π² Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ².

Π€ΠΎΡ€ΠΌΠ°Ρ‚ CSV (значСния, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми) β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых простых ΠΈ распространСнных способов хранСния Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» CSV, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ сохранСн с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .csv .

Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Если Π²Ρ‹ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ Ρ„Π°ΠΉΠ» CSV с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²ΠΎΠ·Π²Ρ‹ΡˆΠ΅Π½Π½Ρ‹ΠΉ тСкст, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅:

  Π‘Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€, Имя, Π“ΠΎΡ€ΠΎΠ΄
1, Майкл, Нью-ДТСрси
2, Π”ΠΆΠ΅ΠΊ, ΠšΠ°Π»ΠΈΡ„ΠΎΡ€Π½ΠΈΡ
  

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, элСмСнты Ρ„Π°ΠΉΠ»Π° CSV Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ запятыми. Π—Π΄Π΅ΡΡŒ, , β€” это Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой символ Π² качСствС раздСлитСля Π² соотвСтствии с вашими потрСбностями.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠœΠΎΠ΄ΡƒΠ»ΡŒ csv Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ„Π°ΠΉΠ»ΠΎΠ² с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: .txt ), Ссли ΠΈΡ… содСрТимоС ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ структуру.

Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ CSV Π² Python

Π₯отя ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ open() для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ CSV Π² Python, сущСствуСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ csv , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ CSV.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ смоТСм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ модуля csv , Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ сначала ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ:

 import csv
 

Π§Ρ‚Π΅Π½ΠΈΠ΅ CSV-Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ csv.

reader()

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ CSV-Ρ„Π°ΠΉΠ» Π² Python, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ csv.reader() . ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» csv с ΠΈΠΌΠ΅Π½Π΅ΠΌ people.csv Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ записями.

Имя Возраст ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΡ
Π”ΠΎΠΌΠΊΡ€Π°Ρ‚ 23 Π”ΠΎΠΊΡ‚ΠΎΡ€
ΠœΠΈΠ»Π»Π΅Ρ€ 22 Π˜Π½ΠΆΠ΅Π½Π΅Ρ€

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌ этот Ρ„Π°ΠΉΠ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ csv.reader() :

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: Π§Ρ‚Π΅Π½ΠΈΠ΅ CSV с Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ-запятой

 import csv
с open('people.csv', 'r') Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»Π°:
    Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ = csv.reader (Ρ„Π°ΠΉΠ»)
    для строки Π² Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅:
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (строка)
 

Π’Ρ‹Ρ…ΠΎΠ΄

  ['Имя', 'Возраст', 'ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΡ']
['Π”ΠΆΠ΅ΠΊ', '23', 'Π”ΠΎΠΊΡ‚ΠΎΡ€']
['ΠœΠΈΠ»Π»Π΅Ρ€', '22', 'Π˜Π½ΠΆΠ΅Π½Π΅Ρ€']
  

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΈ Ρ„Π°ΠΉΠ» people.csv Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ чтСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ:

 с open('people. csv', 'r') Π² качСствС Ρ„Π°ΠΉΠ»Π°:
    .. .. ...
 

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎΠ± ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Python, посСтитС: Python File Input/Output

Π—Π°Ρ‚Π΅ΠΌ csv.reader() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для чтСния Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ повторяСмый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ reader .

9Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ 0007 reader повторяСтся с использованиСм Ρ†ΠΈΠΊΠ»Π° for для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ содСрТимого ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки.


Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ csv.reader() Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Ρ„Π°ΠΉΠ»ΠΎΠ² CSV с Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ-запятой.

Однако эта функция Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ настраиваСма.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ наш CSV-Ρ„Π°ΠΉΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π² качСствС раздСлитСля Π²ΠΊΠ»Π°Π΄ΠΊΡƒ . Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ csv.reader() . Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2. Π§Ρ‚Π΅Π½ΠΈΠ΅ CSV-Ρ„Π°ΠΉΠ»Π° с Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ табуляции

 Π˜ΠΌΠΏΠΎΡ€Ρ‚ csv
с open('people.csv', 'r',) Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»Π°:
    Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ = csv.reader (Ρ„Π°ΠΉΠ», Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ = '\ t')
    для строки Π² Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅:
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (строка)
 

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ delimiter = '\t' Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.


ΠŸΠΎΠ»Π½Ρ‹ΠΉ синтаксис Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ csv.reader() :

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· синтаксиса, ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Π° Π² функция csv.reader() . ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ позволяСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠΉ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС, посСтитС: Π§Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² CSV Π² Python.


Π—Π°ΠΏΠΈΡΡŒ CSV-Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ csv.writer()

Для записи Π² CSV-Ρ„Π°ΠΉΠ» Π² Python ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ csv.writer() .

Ѐункция csv.writer() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Writer , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² строку с раздСлитСлями. ПозТС эту строку ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для записи Π² CSV-Ρ„Π°ΠΉΠ»Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ функция writerow() . Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3: запись Π² Ρ„Π°ΠΉΠ» CSV

 ΠΈΠΌΠΏΠΎΡ€Ρ‚ csv
с open('protagonist.csv', 'w', newline='') Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»Π°:
    ΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ = csv.writer (Ρ„Π°ΠΉΠ»)
    Writer.writerow(["SN", "Ѐильм", "Π“Π»Π°Π²Π½Ρ‹ΠΉ Π³Π΅Ρ€ΠΎΠΉ"])
    author.writerow([1, "ВластСлин ΠΊΠΎΠ»Π΅Ρ†", "Π€Ρ€ΠΎΠ΄ΠΎ Бэггинс"])
    author. writerow([2, "Π“Π°Ρ€Ρ€ΠΈ ΠŸΠΎΡ‚Ρ‚Π΅Ρ€", "Π“Π°Ρ€Ρ€ΠΈ ΠŸΠΎΡ‚Ρ‚Π΅Ρ€"])
 

Когда ΠΌΡ‹ запускаСм ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, создаСтся Ρ„Π°ΠΉΠ» protagonist.csv со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ содСрТимым:

  SN, Ρ„ΠΈΠ»ΡŒΠΌ, Π³Π»Π°Π²Π½Ρ‹ΠΉ Π³Π΅Ρ€ΠΎΠΉ
1, ВластСлин ΠΊΠΎΠ»Π΅Ρ†, Π€Ρ€ΠΎΠ΄ΠΎ Бэггинс
2, Π“Π°Ρ€Ρ€ΠΈ ΠŸΠΎΡ‚Ρ‚Π΅Ρ€, Π“Π°Ρ€Ρ€ΠΈ ΠŸΠΎΡ‚Ρ‚Π΅Ρ€
  

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΈ Ρ„Π°ΠΉΠ» Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ записи.

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ строку ΠΊΠ°ΠΊ список. Π­Ρ‚ΠΈ списки ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Π² строку с раздСлитСлями ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ» CSV.


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 4: Π—Π°ΠΏΠΈΡΡŒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строк с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ writerows()

Если Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ содСрТимоС Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ списка Π² Ρ„Π°ΠΉΠ» CSV, Π²ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

 ΠΈΠΌΠΏΠΎΡ€Ρ‚ CSV
csv_rowlist = [["SN", "Ѐильм", "Π“Π»Π°Π²Π½Ρ‹ΠΉ Π³Π΅Ρ€ΠΎΠΉ"], [1, "ВластСлин ΠΊΠΎΠ»Π΅Ρ†", "Π€Ρ€ΠΎΠ΄ΠΎ Бэггинс"],
               [2, Β«Π“Π°Ρ€Ρ€ΠΈ ΠŸΠΎΡ‚Ρ‚Π΅Ρ€Β», Β«Π“Π°Ρ€Ρ€ΠΈ ΠŸΠΎΡ‚Ρ‚Π΅Ρ€Β»]]
с open('protagonist.csv', 'w') Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»Π°:
    ΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ = csv.writer (Ρ„Π°ΠΉΠ»)
    ΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ.writerows (csv_rowlist)
 

Π’Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3 .

Π—Π΄Π΅ΡΡŒ наш Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ список пСрСдаСтся ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ write.writerows() для записи содСрТимого списка Π² Ρ„Π°ΠΉΠ» CSV.


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 5: Π—Π°ΠΏΠΈΡΡŒ Π² Ρ„Π°ΠΉΠ» CSV с Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ табуляции

 import csv
с open('protagonist.csv', 'w') Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»Π°:
    ΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ = csv.writer (Ρ„Π°ΠΉΠ», Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ = '\ t')
    Writer.writerow(["SN", "Ѐильм", "Π“Π»Π°Π²Π½Ρ‹ΠΉ Π³Π΅Ρ€ΠΎΠΉ"])
    author.writerow([1, "ВластСлин ΠΊΠΎΠ»Π΅Ρ†", "Π€Ρ€ΠΎΠ΄ΠΎ Бэггинс"])
    author.writerow([2, "Π“Π°Ρ€Ρ€ΠΈ ΠŸΠΎΡ‚Ρ‚Π΅Ρ€", "Π“Π°Ρ€Ρ€ΠΈ ΠŸΠΎΡ‚Ρ‚Π΅Ρ€"])
 

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ delimiter = '\t' Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ csv.writer() .


ΠŸΠΎΠ»Π½Ρ‹ΠΉ синтаксис csv.writer () функция:

 csv.writer (csvfile, Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ = 'excel', ** Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅_ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹)
 

Подобно csv.reader() , Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ csv.writer() , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π±ΠΎΠ»Π΅Π΅ настраиваСмой. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС, посСтитС: НаписаниС CSV-Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Python


Python csv.

DictReader() Class

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ класса csv.DictReader() ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для чтСния CSV-Ρ„Π°ΠΉΠ»Π° Π² качСствС словаря.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 6: Python csv.DictReader()

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Π°ΠΉΠ» people.csv , Ρ‡Ρ‚ΠΎ ΠΈ Π² ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1 .

Имя Возраст ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΡ
Π”ΠΎΠΌΠΊΡ€Π°Ρ‚ 23 Π”ΠΎΠΊΡ‚ΠΎΡ€
ΠœΠΈΠ»Π»Π΅Ρ€ 22 Π˜Π½ΠΆΠ΅Π½Π΅Ρ€

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ csv.DictReader() .

 ΠΈΠΌΠΏΠΎΡ€Ρ‚ CSV
с open("people.csv", 'r') Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»Π°:
    csv_file = csv.DictReader(Ρ„Π°ΠΉΠ»)
    для строки Π² csv_file:
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π΄ΠΈΠΊΡ‚ (строка))
 

Π’Ρ‹Ρ…ΠΎΠ΄

  {'Имя': 'Π”ΠΆΠ΅ΠΊ', 'Возраст': '23', 'ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΡ': 'Π”ΠΎΠΊΡ‚ΠΎΡ€'}
{'Имя': 'ΠœΠΈΠ»Π»Π΅Ρ€', 'Возраст': '22', 'ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΡ': 'Π˜Π½ΠΆΠ΅Π½Π΅Ρ€'}
  

Как ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, записи ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ словаря. И записи Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… строках ΡΠ²Π»ΡΡŽΡ‚ΡΡ значСниями словаря.

Π—Π΄Π΅ΡΡŒ csv_file β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ csv.DictReader() . ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for . csv.DictReader() Π²Π΅Ρ€Π½ΡƒΠ» Ρ‚ΠΈΠΏ OrderedDict для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ использовали dict() для прСобразования ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π² ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ явно использовали ΠΌΠ΅Ρ‚ΠΎΠ΄ dict() для создания словарСй Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° for .

 ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π΄ΠΈΠΊΡ‚ (строка))
 

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ . Начиная с Python 3.8, csv.DictReader() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки, ΠΈ Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ явно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ dict() .


ΠŸΠΎΠ»Π½Ρ‹ΠΉ синтаксис csv.DictReader() класс:

 csv.DictReader(Ρ„Π°ΠΉΠ», ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»Π΅ΠΉ=НСт, restkey=НСт, restval=НСт, Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚='excel', *args, **kwds)
 

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎΠ± этом, посСтитС: Python csv.DictReader() class


Python csv.DictWriter() Class

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ класса csv. DictWriter() ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для записи Π² CSV Ρ„Π°ΠΉΠ» ΠΈΠ· словаря Python.

ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ синтаксис класса csv.DictWriter() :

 csv.DictWriter(file, fieldnames)
 

Π—Π΄Π΅ΡΡŒ,

  • Ρ„Π°ΠΉΠ» — CSV Ρ„Π°ΠΉΠ» ΠΊΡƒΠ΄Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ
  • ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»Π΅ΠΉ — ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ списка , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ столбцов, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ порядок, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ записаны Π² Ρ„Π°ΠΉΠ» CSV

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 7: Python csv.DictWriter()

 ΠΈΠΌΠΏΠΎΡ€Ρ‚ csv
с open('players.csv', 'w', newline='') Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»Π°:
    fieldnames = ['player_name', 'fide_rating']
    ΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ = csv.DictWriter (Ρ„Π°ΠΉΠ», ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»Π΅ΠΉ = ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»Π΅ΠΉ)
    ΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ.writeheader()
    Writer.writerow({'player_name': 'ΠœΠ°Π³Π½ΡƒΡ ΠšΠ°Ρ€Π»ΡΠ΅Π½', 'fide_rating': 2870})
    Writer.writerow({'player_name': 'Π€Π°Π±ΠΈΠ°Π½ΠΎ ΠšΠ°Ρ€ΡƒΠ°Π½Π°', 'fide_rating': 2822})
    Writer.writerow({'player_name': 'Π”ΠΈΠ½ Π›ΠΈΠΆΡΠ½ΡŒ', 'fide_rating': 2801})
 

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° создаСт Ρ„Π°ΠΉΠ» player. csv со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ записями:

  player_name,fide_rating
ΠœΠ°Π³Π½ΡƒΡ ΠšΠ°Ρ€Π»ΡΠ΅Π½, 2870
Π€Π°Π±ΠΈΠ°Π½ΠΎ ΠšΠ°Ρ€ΡƒΠ°Π½Π°, 2822 Π³.
Π”ΠΈΠ½ Π›ΠΈΠΆΡΠ½ΡŒ, 2801
  

ΠŸΠΎΠ»Π½Ρ‹ΠΉ синтаксис класса csv.DictWriter() :

 csv.DictWriter(f, ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»Π΅ΠΉ, restval='', extrasaction='raise', Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚='excel', *args, * *kwds)
 

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎΠ± этом, посСтитС: Python csv.DictWriter() class


ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Pandas для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² CSV

Pandas β€” это популярная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Python для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ…. Если ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌΠΈ объСмами Π΄Π°Π½Π½Ρ‹Ρ…, для простоты ΠΈ эффСктивности Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ pandas для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ CSV-Ρ„Π°ΠΉΠ»ΠΎΠ².

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ смоТСм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ pandas, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС, посСтитС: Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Pandas?

ПослС установки ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Pandas ΠΊΠ°ΠΊ:

 ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ pandas ΠΊΠ°ΠΊ pd
 

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» CSV с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pandas, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ read_csv() 9Ѐункция 0008.

ΠžΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *