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

Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Python: функция open()

Главная / Π‘Π»ΠΎΠ³ / Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Python

Π”Π°Ρ‚Π°: 15 октября 2020

Автор: ΠœΠΈΡ…Π°ΠΈΠ» ΠœΠ°ΠΊΠ°Ρ€ΠΈΠΊ

Π‘Π»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ выполнСния скрипта Π² консоли ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΠΎ, Π½ΠΎ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ вСсСло. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, послС закрытия Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° вСсь ΠΈΡ‚ΠΎΠ³ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠ΄Π° исчСзаСт. А хочСтся ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всё это ΠΊΡƒΠ΄Π°-Ρ‚ΠΎ Π½Π° диск, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌ Π² любоС врСмя Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Π΅Π΅. Π”Π° ΠΈ простая Π·Π°Π΄Π°Ρ‡Π° Β«Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈΒ» ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π² любоС врСмя.

Π’ языкС Python для этого прСдусмотрСна встроСнная функция open(). Она Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ чтСния ΠΈ записи Ρ„Π°ΠΉΠ»ΠΎΠ². Об этом Π½ΠΈΠΆΠ΅.

1. Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹


Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π½Π° ПК ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ war_and_peace.txt (Π½Π°Ρ‡Π°Π»ΠΎ Ρ€ΠΎΠΌΠ°Π½Π° Π›. Н. Волстого Β«Π’ΠΎΠΉΠ½Π° ΠΈ ΠΌΠΈΡ€Β»), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ размСстим Π² ΠΏΠ°ΠΏΠΊΠ΅ скрипта.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ для открытия Ρ„Π°ΠΉΠ»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ open() трСбуСтся ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ Π΅Π³ΠΎ располоТСниС ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π»ΠΈΠ±ΠΎ Π·Π°Π΄Π°Π² Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ – Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ

>>> file = open('war_and_peace.txt') 
>>> file.read(50) 
ΠΏΒ»Ρ—Π²Π‚ Eh bien, mon prince. GΠ“Π„nes et Lucques ne s 
>>> file.read() 
Π’ΡƒΡ‚ вывСдСтся ΠΎΡΡ‚Π°Π²ΡˆΠ°ΡΡΡ Ρ‡Π°ΡΡ‚ΡŒ тСкста... 
>>> file.read() 
ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΏΡƒΡΡ‚ΡƒΡŽ строку 
>>> file.close() 

Рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

1. ΠœΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΈ Ρ„Π°ΠΉΠ» ‘war_and_peace.txt’ ΠΈ присвоили Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ file.

2. Π”Π°Π»Π΅Π΅ ΠΌΡ‹ Π²Ρ‹Π²Π΅Π»ΠΈ Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 50 символов ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Если Π² ΠΌΠ΅Ρ‚ΠΎΠ΄

read() Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, Ρ‚ΠΎ вывСдСтся вСсь Ρ„Π°ΠΉΠ». Если Π²Ρ‹ слСдом Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ ΠΈ вывСсти Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΡƒΡΡ‚ΡƒΡŽ строку (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ file.read() являСтся ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ).
ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° сам тСкст: Π² Π½Π΅ΠΌ ΡƒΠ³Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ французскиС слова ΠΈ нСпонятныС кракозябры (ΠΊ слову, Ρƒ вас ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒΡΡ совсСм Π΄Ρ€ΡƒΠ³ΠΈΠ΅ символы). Π’Ρ‹Π²ΠΎΠ΄: с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ Π±Π΅Π΄Π°. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π΅Π΅ Π½Π΅ Π·Π°Π΄Π°Π»ΠΈ явно, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»Π°ΡΡŒ Ρ‚Π°, которая Π·Π°Π΄Π°Π½Π° систСмно. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ функция open() ΠΎΡ‚ΠΊΡ€Ρ‹Π»Π° Ρ€ΠΎΠΌΠ°Π½ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ cp1251
. Но, Ρƒ самого Ρ„Π°ΠΉΠ»Π° ΠΎΠ½Π° другая – utf-8.

3. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΌΡ‹ Π·Π°ΠΊΡ€Ρ‹Π»ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π» мСсто Π² памяти.

Нам ΠΏΠΎΠ²Π΅Π·Π»ΠΎ, Ρ‡Ρ‚ΠΎ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° закрытия Ρ„Π°ΠΉΠ»Π° Π½Π΅ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ошибки, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ Π±Ρ‹ Ρ‚Π°ΠΊ ΠΈ остался ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ объСм памяти.

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ строк — ASCII, Unicode, UTF-8

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ смог ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π΅ΠΌΡƒ символы, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ прСдставлСны Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅. Навряд Π»ΠΈ найдСтся Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ сталкивался с кракозябрами: ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΡˆΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-страницу, Π° Ρ‚Π°ΠΌ – Π½Π°Π±ΠΎΡ€ нСпонятных Π·Π½Π°ΠΊΠΎΠ²; Ρ…ΠΎΡ‡Π΅ΡˆΡŒ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, Π° вмСсто слов ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΡˆΡŒ ΡΠΏΠ»ΠΎΡˆΠ½Ρ‹Π΅ Π·Π½Π°ΠΊΠΈ вопроса. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ дСкодирования тСкста…

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python. Π£Ρ€ΠΎΠΊ 4. Π Π°Π±ΠΎΡ‚Π° со строками

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² Python. Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…: str. Учимся Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ основныС дСйствия Π½Π°Π΄ строковым Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π² Python: созданиС, экранированиС, конкатСнация ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, срСзы, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, строковыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

2. Π§Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ


Π§Ρ‚ΠΎΠ±Ρ‹ случайно Π½Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ», функция open() ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ контСкстного ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°. Π›ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ всСгда Ρ‚Π°ΠΊΠΈΠΌ способом ΠΊΠ°ΠΊ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ.

ΠŸΠΎΠΏΡ‹Ρ‚Π°Π΅ΠΌΡΡ Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ», ΡƒΠΊΠ°Π·Π°Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ, Ρ€Π΅ΠΆΠΈΠΌ (Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ обозначаСтся Π±ΡƒΠΊΠ²ΠΎΠΉ r).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ – Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ

>>> with open('war_and_peace.txt', 'r', encoding='utf-8') as file:
           txt = file.read()
>>> txt[:50]
\ufeffβ€” Eh bien, mon prince. GΓͺnes et Lucques ne sont p
>>> txt[:50]
\ufeffβ€” Eh bien, mon prince. GΓͺnes et Lucques ne sont p

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΊΠΎΠ΄ Π²Π½Π΅ контСкстного ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° выполняСтся послС закрытия Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ очистки памяти (Π΄Π°ΠΆΠ΅ Ссли Π±Ρ‹ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка).


ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ txt ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ строка. Π’ Π½Π΅ΠΉ ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΡƒΠΊΠ²Ρ‹ ΠΈ Π·Π½Π°ΠΊΠΈ прСпинания, Π½ΠΎ ΠΈ всС скрытыС символы (ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку, отступы ΠΈ Ρ‚.ΠΏ.). Π’Π°ΠΊ ΠΊΠ°ΠΊ эта пСрСмСнная Ρ…Ρ€Π°Π½ΠΈΡ‚ строку, Ρ‚ΠΎ ΠΌΡ‹ ΠΊ Π½Π΅ΠΉ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ любоС количСство Ρ€Π°Π·.

БущСствуСт Π²Ρ‚ΠΎΡ€ΠΎΠΉ способ чтСния Ρ„Π°ΠΉΠ»Π° Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ: Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ readlines(). Он Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список строк. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ символу ‘\n’.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ – Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ

>>> with open('war_and_peace.txt', 'r', encoding='utf-8') as file:
           txt = file.readlines()
>>> txt[0]
"\ufeffβ€” Eh bien, mon prince. GΓͺnes et Lucques ne sont plus que des apanages, des ΠΏΠΎΠΌΠ΅ΡΡ‚ΡŒΡ, de la famille Buonaparte. Non, je vous prΓ©viens que si vous ne me dites pas que nous avons la guerre, si vous vous permettez encore de pallier toutes les infamies, toutes les atrocitΓ©s de cet Antichrist (ma parole, j'y crois) β€” je ne vous connais plus, vous n'Γͺtes plus mon ami, vous n'Γͺtes plus ΠΌΠΎΠΉ Π²Π΅Ρ€Π½Ρ‹ΠΉ Ρ€Π°Π±, comme vous dites 1.
Ну, здравствуйтС, здравствуйтС. Je vois que je vous fais peur 2, ΡΠ°Π΄ΠΈΡ‚Π΅ΡΡŒ ΠΈ рассказывайтС.\n"

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π²Ρ‹Π²Π΅Π»ΠΈ Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку Ρ„Π°ΠΉΠ»Π°.

Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ тСкст отобраТаСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Но, имССтся Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ нСприятный ΠΌΠΎΠΌΠ΅Π½Ρ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. Наш Ρ„Π°ΠΉΠ» – достаточно ΠΌΠ°Π» ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΌΡƒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ ΠΎΠΏΡ€Π°Π²Π΄Π°Π½Π½ΠΎ присвоили всё Π΅Π³ΠΎ содСрТимоС ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π’ случаС ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, HD-Ρ„ΠΈΠ»ΡŒΠΌ ΠΈΠ»ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΡΠΎΡ‚Π½ΡŽ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ) это Ρ‡Ρ€Π΅Π²Π°Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ памяти ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ΠΌ ошибок.

3. Π§Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° частями


К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ построчно ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ readline(). Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ строку тяТСловСсного Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π°Π΄ Π½Π΅ΠΉ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Π’Ρ‹Π²Π΅Π΄Π΅ΠΌ Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 50 символов Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π²Ρ‹Ρ… строк.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ – Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ

>>> with open('war_and_peace. txt', 'r', encoding='utf8') as file:
           first_line = file.readline()
           second_line = file.readline()
>>> first_line[:50]
\ufeffβ€” Eh bien, mon prince. GΓͺnes et Lucques ne sont p
>>> second_line[:50]
Π’Π°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»Π° Π² июлС 1805 Π³ΠΎΠ΄Π° извСстная Анна Павло

Π’Π°ΠΊΠΎΠΉ способ ΡƒΠ΄ΠΎΠ±Π΅Π½, Ссли Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ вСсь Ρ„Π°ΠΉΠ», Π° лишь Π΅Π³ΠΎ Ρ‡Π°ΡΡ‚ΡŒ. Π“Π»Π°Π²Π½Ρ‹ΠΉ минус – ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π΅ Π·Π½Π°Ρ‚ΡŒ, сколько строк Π² Ρ„Π°ΠΉΠ»Π΅. А Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ

readline() Π½Π΅ Π²Ρ‹Π΄Π°Π΅Ρ‚ ошибки ΠΏΡ€ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ тСкста, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ просто Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ пустыС.

Если ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ readline() ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ числовой Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, Ρ‚ΠΎ ΠΎΠ½ посчитаСт ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ΠΌ строки это количСство символов.

Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΏΠΎ строкам ΠΌΠΎΠΆΠ½ΠΎ провСсти ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΏΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ, Ссли Π½Π°ΠΌ трСбуСтся провСсти ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ прСобразования Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС, Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ – IDE

with open('war_and_peace.
txt', 'r', encoding='utf8') as file: for line in file: print(line[:15].lower())

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния

β€” eh bien, mon
Ρ‚Π°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»Π° Π² 
Β«si vous n'avez
β€” dieu, quelle 
ΠΎΠ½ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» Π½Π° Ρ‚
β€” avant tout di
β€” ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Ρ‚
β€” Π° ΠΏΡ€Π°Π·Π΄Π½ΠΈΠΊ Π°Π½
β€” я Π΄ΡƒΠΌΠ°Π»Π°, Ρ‡Ρ‚ΠΎ
β€” Π΅ΠΆΠ΅Π»ΠΈ Π±Ρ‹ Π·Π½Π°Π»
β€” ne me tourmen
β€” ΠΊΠ°ΠΊ Π²Π°ΠΌ сказа
князь василий г
Π±Ρ‹Ρ‚ΡŒ энтузиастк

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹ ΠΏΡ€ΠΎΡˆΠ»ΠΈΡΡŒ ΠΏΠΎ всСм строкам тСкста ΠΈ Π²Ρ‹Π²Π΅Π»ΠΈ Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 15 символов ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС.

4. Π—Π°ΠΏΠΈΡΡŒ Π² Ρ„Π°ΠΉΠ»


Ѐункция open() позволяСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, Π½ΠΎ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ. Для этого трСбуСтся ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ Π½Π°

w ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ write(). К слову, этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строку Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. Π—Π°ΠΏΠΈΡˆΠ΅ΠΌ Π² Ρ„Π°ΠΉΠ» Ρ‡Π΅Ρ‚Π½Ρ‹Π΅ числа ΠΎΡ‚ 2 Π΄ΠΎ 19 (ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ число – Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ строку).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ – Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ

>>> with open('even. txt', 'w', encoding='utf8') as file:
           for num in range(2, 20, 2):
                file.write(str(num))

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ появится тСкстовый Ρ„Π°ΠΉΠ» с Ρ‡Π΅Ρ‚Π½Ρ‹ΠΌΠΈ числами. Но записаны ΠΎΠ½ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ – Π² ΠΎΠ΄Π½Ρƒ строку Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ²: 24681012141618. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠΌΠΈΠΌΠΎ записи самой строки трСбуСтся внСсти Π΅Ρ‰Π΅ ΠΈ символ окончания строки

\n.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ – Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ

>>> with open('even.txt', 'w', encoding='utf8') as file:
           for num in range(2, 20, 2):
                file.write(str(num) + '\n')

Π’ΠΎΡ‚ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ„Π°ΠΉΠ» выглядит Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ.

Π’Π°ΠΊΠΎΠΉ способ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅ всСгда ΡƒΠ΄ΠΎΠ±Π΅Π½. НСкоторыС ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ записи тСкста Π² Ρ„Π°ΠΉΠ» – Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ print().
ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠΌ Π·Π°Π΄Π°Ρ‡Ρƒ с Π΅Π΅ использованиСм.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ – Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ

>>> with open('even.
txt', 'w', encoding='utf8') as file: for num in range(2, 20, 2): print(num, file=file)

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ функция print() Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ (Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ) Π² ΠΏΠΎΡ‚ΠΎΠΊ STDOUT Π½Π° устройство отобраТСния (ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€). Π’ нашСм случаС ΠΌΡ‹ Π΅Π³ΠΎ пСрСнаправляСм Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚(ΠΏΠΎΡ‚ΠΎΠΊ) file.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΡƒ записи Π² Ρ„Π°ΠΉΠ» Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ссли Ρ„Π°ΠΉΠ»Π° Π½Π΅Ρ‚ – Ρ‚ΠΎ ΠΎΠ½ создаСтся, Ссли ΠΆΠ΅ ΠΎΠ½ Π΅ΡΡ‚ΡŒ, Ρ‚ΠΎ всС Π΅Π³ΠΎ содСрТимоС удаляСтся ΠΈ пСрСзаписываСтся. А, Π²Π΄Ρ€ΡƒΠ³, Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈ случайно пСрСписали Π΅Π³ΠΎ содСрТимоС? Мало приятного.
Π˜Π·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Π±Π΅Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ использованиСм Ρ€Π΅ΠΆΠΈΠΌΠ° x.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ – Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ

>>> with open('even.txt', 'x', encoding='utf8') as file:
           for num in range(2, 20, 2):
                print(num, file=file)

ΠŸΡ€ΠΈ исполнСнии ΠΊΠΎΠ΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка FileExistsError, говорящая ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ» ΡƒΠΆΠ΅ имССтся Π½Π° дискС. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π»ΠΈΠ±ΠΎ создавайтС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π»ΠΈΠ±ΠΎ удаляйтС старый.

5. Π”ΠΎΠ·Π°ΠΏΠΈΡΡŒ Π² Ρ„Π°ΠΉΠ»


НС всСгда трСбуСтся Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ» Π΅Π΄ΠΈΠ½ΠΎΡ€Π°Π·ΠΎΠ²ΠΎ. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ситуациях Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉΡΡ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π½ΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ (ΠΏΡ€ΠΈ парсингС, Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ Ρ‚.ΠΏ.). На ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Ρ€Π΅ΠΆΠΈΠΌ a.

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅Π΅ΠΌ Ρ„Π°ΠΉΠ» с Ρ‡Π΅Ρ‚Π½Ρ‹ΠΌΠΈ числами Π΄ΠΎ 18, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΠΌ Π΅Π³ΠΎ Ρ‡Π΅Ρ‚Π½Ρ‹ΠΌΠΈ числами Π΄ΠΎ 100 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ – Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ

>>> with open('even.txt', 'x', encoding='utf8') as file:
           for num in range(2, 20, 2):
                print(num, file=file)

Π’ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ even.txt Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ всС Ρ‡Π΅Ρ‚Π½Ρ‹Π΅ числа ΠΎΡ‚ 2 Π΄ΠΎ 100.

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ основы Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Python Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ open(). Она Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС, ΠΈΠΌΠ΅Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹, позволяСт Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с тСкстовыми Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° txt, Π½ΠΎ ΠΈ Π»ΡŽΠ±Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°ΠΌΠΈ, ΠΌΠ΅Π΄ΠΈΠ°Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, excel-Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ, html-страницами ΠΈ Ρ‚. Π΄.).

15 ΠžΠšΠ’Π―Π‘Π Π― / 2020

Как Π²Π°ΠΌ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»?

ΠŸΠžΠšΠΠ—ΠΠ’Π¬ ΠšΠžΠœΠœΠ•ΠΠ’ΠΠ Π˜Π˜

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

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

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Π²ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° вашСм ТСстком дискС. Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ всСго обучСния, Π²Ρ‹ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π² Python – это ΠΎΡ‡Π΅Π½ΡŒ просто. НачнСм ΠΆΠ΅.

Как Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹

Python содСрТит Π² сСбС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«openΒ», ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для открытия Ρ„Π°ΠΉΠ»ΠΎΠ² для чтСния. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ тСкстовый Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ test.txt ΠΈ Π²ΠΏΠΈΡˆΠΈΡ‚Π΅:

Python

This is test file line 2 line 3 this line intentionally left lank

This is test file

line 2

line 3

this line intentionally left lank

Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Β«ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒΒ» для чтСния:

Python

handle = open(«test. txt») handle = open(r»C:\Users\mike\py101book\data\test.txt», «r»)

handle = open(«test.txt»)

handle = open(r»C:\Users\mike\py101book\data\test.txt», «r»)

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ test.txt Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Β«Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅Β». Π­Ρ‚ΠΎ стандартный Ρ€Π΅ΠΆΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ открытия Ρ„Π°ΠΉΠ»ΠΎΠ². ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ пропускаСм вСсь ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ собираСмся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. Python автоматичСски просмотрит ΠΏΠ°ΠΏΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°ΠΏΡƒΡ‰Π΅Π½ скрипт для text.txt. Если Π΅Π³ΠΎ Π½Π΅ удаСтся Π½Π°ΠΉΡ‚ΠΈ, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± ошибкС IOError. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ начинаСтся с Β«rΒ». Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Python, Ρ‡Ρ‚ΠΎΠ±Ρ‹ строка ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»Π°ΡΡŒ ΠΊΠ°ΠΊ исходная. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ исходной строкой ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ:

Python

>>> print(«C:\Users\mike\py101book\data\test. txt») C:\Users\mike\py101book\data est.txt >>> print(r»C:\Users\mike\py101book\data\test.txt») C:\Users\mike\py101book\data\test.txt

>>> print(«C:\Users\mike\py101book\data\test.txt»)

C:\Users\mike\py101book\dataΒ Β Β Β est.txt

Β 

>>> print(r»C:\Users\mike\py101book\data\test.txt»)

C:\Users\mike\py101book\data\test.txt

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π½Π΅ опрСдСляСм строку ΠΊΠ°ΠΊ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ. ΠŸΠΎΡ‡Π΅ΠΌΡƒ это происходит? Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ β€œn” ΠΈΠ»ΠΈ β€œt”. Π’ нашСм случаС присутствуСт β€œt” (ΠΈΠ½Ρ‹ΠΌΠΈ словами, Π²ΠΊΠ»Π°Π΄ΠΊΠ°), Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ строка ΠΏΠΎΡΠ»ΡƒΡˆΠ½ΠΎ добавляСт Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Π² наш ΠΏΡƒΡ‚ΡŒ ΠΈ ΠΏΠΎΡ€Ρ‚ΠΈΡ‚ Π΅Ρ‘ для нас. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это Π±ΡƒΠΊΠ²Π° β€œr”. Π”Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Β«Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅Β». Π˜Π½Ρ‹ΠΌΠΈ словами, происходит Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ явно. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΏΡ€ΠΎΡ‡Ρ‚Π΅ΠΌ Ρ„Π°ΠΉΠ»!

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π½ΠΈΠΆΠ΅ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ строки Π² скрипт, ΠΈ сохранитС Π΅Π³ΠΎ Ρ‚Π°ΠΌ ΠΆΠ΅, Π³Π΄Π΅ ΠΈ Ρ„Π°ΠΉΠ» test.txt.

Python

handle = open(«test.txt», «r») data = handle.read() print(data) handle.close()

handle = open(«test.txt», «r»)

data = handle.read()

print(data)

handle.close()

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

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы чтСния Ρ„Π°ΠΉΠ»ΠΎΠ².

Python

handle = open(«test.txt», «r») data = handle.readline() # read just one line print(data) handle.close()

handle = open(«test.txt», «r»)

data = handle.readline() # read just one line

print(data)

handle.close()

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½Π° ΠΈ распСчатана Ρ‚ΠΎΠ»ΡŒΠΊΠΎ пСрвая строка тСкстового Ρ„Π°ΠΉΠ»Π°. Π­Ρ‚ΠΎ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ readlines() Π² дСскрипторС:

Python

handle = open(«test.txt», «r») data = handle.readlines() # read ALL the lines! print(data) handle.close()

handle = open(«test. txt», «r»)

data = handle.readlines() # read ALL the lines!

print(data)

handle.close()

Π•ΡΡ‚ΡŒ вопросы ΠΏΠΎ Python?

На нашСм Ρ„ΠΎΡ€ΡƒΠΌΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ любой вопрос ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ всСго нашСго сообщСства!

Python Π€ΠΎΡ€ΡƒΠΌ ΠŸΠΎΠΌΠΎΡ‰ΠΈ

Telegram Π§Π°Ρ‚ & Канал

ВступитС Π² наш Π΄Ρ€ΡƒΠΆΠ½Ρ‹ΠΉ Ρ‡Π°Ρ‚ ΠΏΠΎ Python ΠΈ Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ с Π΅Π΄ΠΈΠ½ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌΠΈ! Π‘Ρ‚Π°Π½ΡŒΡ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒΡŽ большого сообщСства!

Паблик VK

Одно ΠΈΠ· самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… сообщСств ΠΏΠΎ Python Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ сСти Π’Πš. Π’ΠΈΠ΄Π΅ΠΎ ΡƒΡ€ΠΎΠΊΠΈ ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ для вас!

ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ

ПослС запуска Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π½Ρ‹ΠΉ Π½Π° экранС список, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ readlines() ΠΈ выполняСт. Π”Π°Π»Π΅Π΅ ΠΌΡ‹ научимся Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎ ΠΌΠ΅Π»ΠΊΠΈΠΌ частям.

Как Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΏΠΎ частям

Π‘Π°ΠΌΡ‹ΠΉ простой способ для выполнСния этой Π·Π°Π΄Π°Ρ‡ΠΈ – ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ». Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ научимся Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» строку Π·Π° строкой, послС этого ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Ρƒ Π·Π° Ρ€Π°Π·. Π’ нашСм ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ Ρ†ΠΈΠΊΠ»:

Python

handle = open(«test.txt», «r») for line in handle: print(line) handle.close()

1

2

3

4

5

6

handle = open(«test.txt», «r»)

Β 

for line in handle:

Β Β Β Β print(line)

Β 

handle.close()

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» Π² дСскрипторС Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Β«Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅Β», послС Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ†ΠΈΠΊΠ» для Π΅Π³ΠΎ повторСния. Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ†ΠΈΠΊΠ» ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊ Π»ΡŽΠ±Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Python (строки, списки, запятыС, ΠΊΠ»ΡŽΡ‡ΠΈ Π² словарС, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅). Π’Π΅ΡΡŒΠΌΠ° просто, Π½Π΅ Ρ‚Π°ΠΊ Π»ΠΈ? ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΏΠΎ частям:

Python

handle = open(«test.txt», «r») while True: data = handle.read(1024) print(data) if not data: break

1

2

3

4

5

6

7

8

handle = open(«test. txt», «r»)

Β 

while True:

Β Β Β Β data = handle.read(1024)

Β Β Β Β print(data)

Β 

Β Β Β Β if not data:

Β Β Β Β Β Β Β Β break

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ использовали Python Π² Ρ†ΠΈΠΊΠ»Π΅, ΠΏΠΎΠΊΠ° Ρ‡ΠΈΡ‚Π°Π»ΠΈ Ρ„Π°ΠΉΠ» ΠΏΠΎ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Ρƒ Π·Π° Ρ€Π°Π·. Как извСстно, ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚ содСрТит Π² сСбС 1024 Π±Π°ΠΉΡ‚Π° ΠΈΠ»ΠΈ символов. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ прСдставим, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ PDF.

Как Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ (Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅) Ρ„Π°ΠΉΠ»Ρ‹

Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ просто. ВсС Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, это ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ способ доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ:

Python

handle = open(«test.pdf», «rb»)

handle = open(«test.pdf», «rb»)

ΠœΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ способ доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π½Π° rb, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ read-binaryy. Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΊΠ°Ρ‡Π°Π΅Ρ‚Π΅ PDF Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, ΠΈΠ»ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ.

ПишСм Π² Ρ„Π°ΠΉΠ»Π°Ρ… Π² Python

Как Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, слСдуя Π»ΠΎΠ³ΠΈΠΊΠ΅ написанного Π²Ρ‹ΡˆΠ΅, Ρ€Π΅ΠΆΠΈΠΌΡ‹ написания Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Python это β€œw” ΠΈ β€œwb” для write-mode ΠΈ write-binary-mode соотвСтствСнно. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ.
Π’ΠΠ˜ΠœΠΠΠ˜Π•: использованиС Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² β€œw” ΠΈΠ»ΠΈ β€œwb” Π² ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ Π΅Π³ΠΎ Π±Π΅Π· прСдупрСТдСния. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, сущСствуСт Π»ΠΈ Ρ„Π°ΠΉΠ», ΠΎΡ‚ΠΊΡ€Ρ‹Π² Π΅Π³ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ модуля ОБ Python.

Python

handle = open(«output.txt», «w») handle.write(«This is a test!») handle.close()

handle = open(«output.txt», «w»)

handle.write(«This is a test!»)

handle.close()

Π’ΠΎΡ‚ Ρ‚Π°ΠΊ Π²ΠΎΡ‚ просто. ВсС, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ здСсь сдСлали – это ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Ρ€Π΅ΠΆΠΈΠΌ Ρ„Π°ΠΉΠ»Π° Π½Π° β€œw” ΠΈ ΡƒΠΊΠ°Π·Π°Π»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ написания Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ дСскрипторС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ тСкст Π² Ρ‚Π΅Π»Π΅ Ρ„Π°ΠΉΠ»Π°. Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ дСскриптор Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ writelines (написаниС строк), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ список строк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ дСскриптор, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎ порядку Π½Π° диск.

Π’Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ Π΄Π΅ΡˆΠ΅Π²Ρ‹Π΅ Π»Π°ΠΉΠΊΠΈ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ Π² YouTube Π½Π° сСрвисС https://doctorsmm. com/. Π—Π΄Π΅ΡΡŒ, ΠΏΡ€ΠΈ Π·Π°ΠΊΠ°Π·Π΅, Π’Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ прСдоставлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅Π΄ΠΎΡ€ΠΎΠ³ΡƒΡŽ Ρ†Π΅Π½Ρƒ, Π½ΠΎ ΠΈ Π²Ρ‹Π³ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ условия приобрСтСния. Π’ΠΎΡ€ΠΎΠΏΠΈΡ‚Π΅ΡΡŒ, ΠΏΠΎΠΊΠ° Π½Π° сайтС Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠΏΡ‚ΠΎΠ²Ρ‹Π΅ скидки!

ИспользованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Β«withΒ»

Π’ Python имССтся Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ встроСнный инструмСнт, примСняя ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ². ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ with создаСт диспСтчСр контСкста Π² ΠŸΠ°ΠΉΡ‚ΠΎΠ½Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ автоматичСски Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» для вас, ΠΏΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Π½Π΅ΠΌ. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚:

Python

with open(«test.txt») as file_handler: for line in file_handler: print(line)

with open(«test.txt») as file_handler:

Β Β Β Β for line in file_handler:

Β Β Β Β Β Β Β Β print(line)

Бинтаксис для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° with, Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, каТСтся слСгка Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ это вопрос Π½Π΅Π΄ΠΎΠ»Π³ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ. ЀактичСски, всС, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, это:

Python

handle = open(«test. txt»)

handle = open(«test.txt»)

МСняСм Π½Π° это:

Python

with open(«test.txt») as file_handler:

with open(«test.txt») as file_handler:

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ всС стандартныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°\Π²Ρ‹Π²ΠΎΠ΄Π°, Π² ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠΌ порядкС, ΠΏΠΎΠΊΠ° Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠΎΠΊΠΈΠ½Π΅Ρ‚Π΅ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ дСскриптор Π·Π°ΠΊΡ€ΠΎΠ΅Ρ‚ Π΅Π³ΠΎ, ΠΈ Π΅Π³ΠΎ ΡƒΠΆΠ΅ нСльзя Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. И Π΄Π°, Π²Ρ‹ всС ΠΏΡ€ΠΎΡ‡Π»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈΡ‡Π½ΠΎ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ дСскриптор Ρ„Π°ΠΉΠ»Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π΄Π΅Π»Π°Π΅Ρ‚ это автоматичСски. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ внСсти измСнСния Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ with.

ВыявлСниС ошибок

Иногда, Π² Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ошибки ΡΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ. Π€Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ процСсс ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠΌ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠ»ΠΈ ΠΈΠ·-Π·Π° наличия Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ошибки Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Когда это происходит, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ IOError. Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ эти ошибки ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ способом, ΠΈ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° with. Подсказка: данная идСя ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠ° ΠΊ ΠΎΠ±ΠΎΠΈΠΌ способам.

Python

try: file_handler = open(«test.txt») for line in file_handler: print(line) except IOError: print(«An IOError has occurred!») finally: file_handler.close()

1

2

3

4

5

6

7

8

try:

Β Β Β Β file_handler = open(«test.txt»)

Β Β Β Β for line in file_handler:

Β Β Β Β Β Β Β Β print(line)

except IOError:

Β Β Β Β print(«An IOError has occurred!»)

finally:

Β Β Β Β file_handler.close()

Π’ описанном Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² конструкции try/except. Если ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚, слСдуСт ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ сообщСниС Π½Π° экранС. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ слСдуСт ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» Π·Π°ΠΊΡ€Ρ‹Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° finally. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ:

Python

try: with open(«test.txt») as file_handler: for line in file_handler: print(line) except IOError: print(«An IOError has occurred!»)

1

2

3

4

5

6

try:

Β Β Β Β with open(«test.txt») as file_handler:

Β Β Β Β for line in file_handler:

Β Β Β Β Β Β Β Β print(line)

except IOError:

Β Β Β Β print(«An IOError has occurred!»)

Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ пСрСмСстили Π±Π»ΠΎΠΊ with Ρ‚ΡƒΠ΄Π° ΠΆΠ΅, Π³Π΄Π΅ ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. Π Π°Π·Π½ΠΈΡ†Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ finally Π½Π΅ трСбуСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ контСкстный диспСтчСр выполняСт Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для нас.

ПодвСдСм ΠΈΡ‚ΠΎΠ³ΠΈ

Π‘ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π²Ρ‹ ΡƒΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Python. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Π²Π½ΠΎΡΠΈΡ‚ΡŒ записи Π² Ρ„Π°ΠΉΠ»Ρ‹ двумя способами. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ смоТСтС с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ вопросС.

Vasile Buldumac

Являюсь администратором Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡ€Ρ‚Π°Π»ΠΎΠ² ΠΏΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ языков программирования Python, Golang ΠΈ Kotlin. Π’ составС нСбольшой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΅Π΄ΠΈΠ½ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΎΠ², ΠΌΡ‹ занимаСмся популяризациСй языков программирования Π½Π° Ρ€ΡƒΡΡΠΊΠΎΡΠ·Ρ‹Ρ‡Π½ΡƒΡŽ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΡŽ. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ статСй Π±Ρ‹Π»Π° Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π°ΠΌΠΈ Π½Π° русский язык ΠΈ распространяСтся бСсплатно.

E-mail: [email protected]

ΠžΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅
Universitatea Tehnică a Moldovei (utm.md)

  • 2014 β€” 2018 ВСхничСский УнивСрситСт ΠœΠΎΠ»Π΄ΠΎΠ²Ρ‹, ИВ-Π˜Π½ΠΆΠ΅Π½Π΅Ρ€. Π’Π΅ΠΌΠ° Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ «Автоматизация ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π°Π»ΡŽΡ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ тСхничСский Π°Π½Π°Π»ΠΈΠ·Β»
  • 2018 β€” 2020 ВСхничСский УнивСрситСт ΠœΠΎΠ»Π΄ΠΎΠ²Ρ‹, ΠœΠ°Π³ΠΈΡΡ‚Ρ€, ΠœΠ°Π³ΠΈΡΡ‚Π΅Ρ€ΡΠΊΠ°Ρ диссСртация Β«Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π² кибСрпространствС ΠΏΠΎ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ Π»ΠΈΡ†Π°Β»

Π˜Π·ΡƒΡ‡Π°Π΅ΠΌ Python: Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Python. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Python.Β  Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Python. Π—Π°ΠΏΠΈΡΡŒ Π² Ρ„Π°ΠΉΠ» Python, Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°. А Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.

  • Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΏΠΈΡ‚ΠΎΠ½ — Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ„Π°ΠΉΠ» Python?
  • ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Python
  • Как Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² Python?
  • Π—Π°ΠΏΠΈΡΡŒ Π² Ρ„Π°ΠΉΠ» Python
  • Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Python
  • Python Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ — основныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Π€Π°ΠΉΠ» – это имСнованная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ диска, прСдназначСнная для Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² постоянной памяти (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° Тёстком дискС).

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ», сначала Π½ΡƒΠΆΠ½ΠΎ Π΅Π³ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ. ПослС окончания Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„Π°ΠΉΠ» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ связанныС с Π½ΠΈΠΌ рСсурсы.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² Python ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ порядкС:

  1. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Python.
  2. Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Python ΠΈΠ»ΠΈ запись Π² Ρ„Π°ΠΉΠ» Python (Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ).
  3. Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Python.

НС Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅? Π’ Python Π΅ΡΡ‚ΡŒ встроСнная функция open(), прСдназначСнная для открытия Ρ„Π°ΠΉΠ»Π°. Она Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для чтСния ΠΈΠ»ΠΈ измСнСния Ρ„Π°ΠΉΠ»Π°.

>>> f = open("test.txt")    # ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅
>>> f = open("C:/Python33/README.txt")  # ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ

ΠŸΡ€ΠΈ этом ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ открытия Ρ„Π°ΠΉΠ»Π°: ‘r’- для чтСния,’w’ Β — для записи,’a’ — для измСнСния. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ…ΠΎΡ‚ΠΈΠΌ Π»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² тСкстовом ΠΈΠ»ΠΈ Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ„Π°ΠΉΠ» открываСтся для чтСния Π² тСкстовом Ρ€Π΅ΠΆΠΈΠΌΠ΅. ΠŸΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° Π² этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ строки.

Π’ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π±Π°ΠΉΡ‚Ρ‹. Π­Ρ‚ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для чтСния Π½Π΅ тСкстовых Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ изобраТСния ΠΈΠ»ΠΈ exe-Ρ„Π°ΠΉΠ»Ρ‹.

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Python- Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹
РСТимОписаниС
‘r’ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° для чтСния. Π Π΅ΠΆΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.
‘w’ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° для записи. Π Π΅ΠΆΠΈΠΌ создаёт Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Ссли ΠΎΠ½ Π½Π΅ сущСствуСт, ΠΈΠ»ΠΈ стираСт содСрТимоС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ.
‘x’ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° для записи. Если Ρ„Π°ΠΉΠ» сущСствуСт, опСрация заканчиваСтся Π½Π΅ΡƒΠ΄Π°Ρ‡Π΅ΠΉ (ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ).
‘a’ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° для добавлСния Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π° Π±Π΅Π· очистки Π΅Π³ΠΎ содСрТимого. Π­Ρ‚ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌ создаёт Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Ссли ΠΎΠ½ Π½Π΅ сущСствуСт.
‘t’ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π² тСкстовом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Π­Ρ‚ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.
‘b’ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.
‘+’ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° для обновлСния (чтСния ΠΈ записи).

f = open("test.txt")      # эквивалСнт 'r' ΠΈΠ»ΠΈ 'rt'
f = open("test.txt",'w')  # запись Π² тСкстовом Ρ€Π΅ΠΆΠΈΠΌΠ΅
f = open("img.bmp",'r+b') # Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования, Π² Python символ ‘a’ Π½Π΅ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ число 97, Ссли ΠΎΠ½ΠΎ Π½Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π² ASCII (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ эквивалСнтной ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅).

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ зависит ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π’ Windows – это ‘cp1252’, Π° Π² Linux ‘utf-8’.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² тСкстовом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ рСкомСндуСтся ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ.

f = open("test.txt",mode = 'r',encoding = 'utf-8')

Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ освободит рСсурсы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ связаны с Ρ„Π°ΠΉΠ»ΠΎΠΌ. Π­Ρ‚ΠΎ дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° close(), встроСнного Π² язык программирования Python.

Π’ Python Π΅ΡΡ‚ΡŒ сборщик мусора, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для очистки Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Но нСльзя ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Π½Π΅Π³ΠΎ ΠΏΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ².

f = open("test.txt",encoding = 'utf-8')
# Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Ρ„Π°ΠΉΠ»ΠΎΠΌ
f.close()

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ бСзопасСн. Если ΠΏΡ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π²Π°Π½ΠΎ Π±Π΅Π· закрытия Ρ„Π°ΠΉΠ»Π°.

Π‘ΠΎΠ»Π΅Π΅ бСзопасный способ – использованиС Π±Π»ΠΎΠΊΠ° try…finally.

try:
   f = open("test.txt",encoding = 'utf-8')
   # Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Ρ„Π°ΠΉΠ»ΠΎΠΌ
finally:
   f.close()

Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π΄Π°ΠΆΠ΅ послС возникновСния ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’Π°ΠΊΠΆΠ΅ для закрытия Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ with. Оно Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚ ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· Π±Π»ΠΎΠΊΠ° with. ΠŸΡ€ΠΈ этом Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ явно Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ close(). Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ сдСлано автоматичСски.

with open("test.txt",encoding = 'utf-8') as f:
   # Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Ρ„Π°ΠΉΠ»ΠΎΠΌ

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ» Π² Python, Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ‘w’, ‘a’ ΠΈΠ»ΠΈ ‘x’. Но Π±ΡƒΠ΄ΡŒΡ‚Π΅ остороТны с Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ ‘w’. Он пСрСзаписываСт Ρ„Π°ΠΉΠ», Ссли Ρ‚ΠΎ ΡƒΠΆΠ΅ сущСствуСт. ВсС Π΄Π°Π½Π½Ρ‹Π΅ Π² этом случаС ΡΡ‚ΠΈΡ€Π°ΡŽΡ‚ΡΡ.

Π—Π°ΠΏΠΈΡΡŒ строки ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±Π°ΠΉΡ‚ΠΎΠ² (для Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²) осущСствляСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ write(). Он Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство символов, записанных Π² Ρ„Π°ΠΉΠ».

with open("test.txt",'w',encoding = 'utf-8') as f:
   f.write("my first filen")
   f.write("This filenn")
   f.write("contains three linesn")

Π­Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° создаст Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ‘test.txt’. Если ΠΎΠ½ сущСствуСт, Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Π° Π±ΡƒΠ΄ΡƒΡ‚ пСрСзаписаны. ΠŸΡ€ΠΈ этом Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ символы Π½ΠΎΠ²ΠΎΠΉ строки ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ строки.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Python, Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ чтСния. Для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ read(size), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π΄Π°Π½Π½Ρ‹Π΅ Π² количСствС, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ size. Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ size Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π°.

>>> f = open("test.txt",'r',encoding = 'utf-8')
>>> f.read(4)    # Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… 4 символов
'This'
>>> f.read(4)    # Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… 4 символов
' is '
>>> f.read()     # Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π°
'my first filenThis filencontains three linesn'
>>> f.read()  # дальнСйшиС ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ чтСния Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΏΡƒΡΡ‚ΡƒΡŽ строку
''

ΠœΠ΅Ρ‚ΠΎΠ΄Β read() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ строки ΠΊΠ°ΠΊ ‘n’. Когда Π±ΡƒΠ΄Π΅Ρ‚ достигнут ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°, ΠΏΡ€ΠΈ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°Ρ… чтСния ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ пустыС строки.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ курсора Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ„Π°ΠΉΠ»Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ seek(). ΠœΠ΅Ρ‚ΠΎΠ΄ tell() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ курсора (Π² Π²ΠΈΠ΄Π΅ количСства Π±Π°ΠΉΡ‚ΠΎΠ²).

>>> f.tell()    # ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ курсора Π² Ρ„Π°ΠΉΠ»Π΅
56
>>> f. seek(0)   # Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ курсор Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ
0
>>> print(f.read())  # Ρ‡ΠΈΡ‚Π°Π΅ΠΌ вСсь Ρ„Π°ΠΉΠ»
This is my first file
This file
contains three lines

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» построчно Π² Ρ†ΠΈΠΊΠ»Π΅ for.

>>> for line in f:
...     print(line, end = '')
...
This is my first file
This file
contains three lines

Π˜Π·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΡ‹Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° строки Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя символ Π½ΠΎΠ²ΠΎΠΉ строки ‘n’. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ пустой ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ end ΠΌΠ΅Ρ‚ΠΎΠ΄Π° print(),.

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ readline(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ строки. Он Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» Π΄ΠΎ символа Π½ΠΎΠ²ΠΎΠΉ строки.

>>> f.readline()
'This is my first filen'
>>> f.readline()
'This filen'
>>> f.readline()
'contains three linesn'
>>> f.readline()
''

ΠœΠ΅Ρ‚ΠΎΠ΄ readlines() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ строк. ВсС эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ чтСния Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΏΡƒΡΡ‚ΡƒΡŽ строку, ΠΊΠΎΠ³Π΄Π° достигаСтся ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°.

>>> f.readlines()
['This is my first filen', 'This filen', 'contains three linesn']

НиТС приводится ΠΏΠΎΠ»Π½Ρ‹ΠΉ список ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² тСкстовом Ρ€Π΅ΠΆΠΈΠΌΠ΅.

Python Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ — ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹
ΠœΠ΅Ρ‚ΠΎΠ΄ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
close()Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°. НС Π΄Π΅Π»Π°Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ, Ссли Ρ„Π°ΠΉΠ» Π·Π°ΠΊΡ€Ρ‹Ρ‚.
detach()ΠžΡ‚Π΄Π΅Π»ΡΠ΅Ρ‚ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ Π±ΡƒΡ„Π΅Ρ€ ΠΎΡ‚ TextIOBase ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ.
fileno()Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ цСлочислСнный дСскриптор Ρ„Π°ΠΉΠ»Π°.
flush()Π’Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ сброс Π΄Π°Π½Π½Ρ‹Ρ… (запись Π½Π° диск) ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π° записи Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°.
isatty()Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True, Ссли Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ.
read(n)Π§ΠΈΡ‚Π°Π΅Ρ‚ максимум n символов ΠΈΠ· Ρ„Π°ΠΉΠ»Π°. Π§ΠΈΡ‚Π°Π΅Ρ‚ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π°, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ None.
readable()Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True, Ссли ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅.
readline(n=-1)Π§ΠΈΡ‚Π°Π΅Ρ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ строку ΠΈΠ· Ρ„Π°ΠΉΠ»Π°. Π§ΠΈΡ‚Π°Π΅Ρ‚ максимум n Π±Π°ΠΉΡ‚, Ссли ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.
readlines(n=-1)Π§ΠΈΡ‚Π°Π΅Ρ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список строк ΠΈΠ· Ρ„Π°ΠΉΠ»Π°. Π§ΠΈΡ‚Π°Π΅Ρ‚ максимум n Π±Π°ΠΉΡ‚/символов, Ссли ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.
seek(offset,from=SEEK_SET)Π˜Π·ΠΌΠ΅Π½ΡΠ΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ курсора.
seekable()Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True, Ссли Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ случайный доступ.
tell()Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ курсора Π² Ρ„Π°ΠΉΠ»Π΅.
truncate(size=None)Π˜Π·ΠΌΠ΅Π½ΡΠ΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π΄ΠΎ size Π±Π°ΠΉΡ‚. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ size Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ€Π°Π·ΠΌΠ΅Ρ€ измСняСтся Π΄ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ полоТСния курсора.
writable()Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True, Ссли Π² Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ запись.
write(s)ЗаписываСт строки s Π² Ρ„Π°ΠΉΠ» ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство записанных символов.
writelines(lines)ЗаписываСт список строк lines Π² Ρ„Π°ΠΉΠ».

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠΉΡ‚Π΅ свои мнСния ΠΏΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ‚Π΅ΠΌΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°. Π—Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Π»Π°ΠΉΠΊΠΈ, ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠΈ, Π΄ΠΈΠ·Π»Π°ΠΉΠΊΠΈ, подписки ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ Π²Π°ΠΌ спасибо!

Π‘Π΅Ρ€Π³Π΅ΠΉ Π‘Π΅Π½Π·Π΅Π½ΠΊΠΎΠ°Π²Ρ‚ΠΎΡ€-ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ ΡΡ‚Π°Ρ‚ΡŒΠΈ Β«Python File IO Read and Write Files in PythonΒ»

Π“Π»Π°Π²Π° 8.

Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ β€” ДокумСнтация ΠΏΠΎ Python 101 1.0

Π’ этой Π³Π»Π°Π²Π΅ рассказываСтся ΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΈ записи Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° ТСстком дискС. Π’Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Python ΠΎΡ‡Π΅Π½ΡŒ просты. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ!

Как Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»

Python ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ open , ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» для чтСния. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ тСкстовый Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«test.txtΒ» со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ содСрТимым:

 Π­Ρ‚ΠΎ тСстовый Ρ„Π°ΠΉΠ».
строка 2
строка 3
эта строка Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ оставлСна ​​пустой
 

Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ open для чтСния:

 handle = open("test.txt")
handle = open(r"C:\Users\mike\py101book\data\test.txt", "r")
 

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ test.txt Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния. Π­Ρ‚ΠΎ Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ open . ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. Python Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΈΡΠΊΠ°Ρ‚ΡŒ Π² ΠΏΠ°ΠΏΠΊΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°ΠΏΡƒΡ‰Π΅Π½ скрипт, test.txt . Если ΠΎΠ½ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚ Π΅Π³ΠΎ, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ IOError.

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, Π½ΠΎ Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ начинаСтся с Β«rΒ». Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Python ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π» строку ΠΊΠ°ΠΊ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΡƒΡŽ строку. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ исходной строки ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ строки:

 >>> print("C:\Users\mike\py101book\data\test.txt")
C:\ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ\Майк\py101book\Π΄Π°Π½Π½Ρ‹Π΅ est.txt
>>> print(r"C:\Users\mike\py101book\data\test.txt")
C:\ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ\Майк\py101book\data\test.txt
 

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΡƒΡŽ строку, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ нСдопустимый ΠΏΡƒΡ‚ΡŒ. ΠŸΠΎΡ‡Π΅ΠΌΡƒ это происходит? Ну, ΠΊΠ°ΠΊ Π²Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΈΠ· Π³Π»Π°Π²Ρ‹ ΠΎ строках, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Β«nΒ» ΠΈΠ»ΠΈ Β«tΒ». Π’ этом случаС ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Β«tΒ» (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ табуляция), поэтому строка ΠΏΠΎΡΠ»ΡƒΡˆΠ½ΠΎ добавляСт Ρ‚Π°Π±ΡƒΠ»ΡΡ†ΠΈΡŽ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡƒΡ‚ΠΈ ΠΈ ΠΏΠΎΡ€Ρ‚ΠΈΡ‚ Π΅Π³ΠΎ для нас.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚Π°ΠΊΠΆΠ΅ являСтся Β«rΒ». Π­Ρ‚ΠΎ сообщаСт open , Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ явно. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π° самом Π΄Π΅Π»Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌ Ρ„Π°ΠΉΠ»!

ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки Π² сцСнарий Python ΠΈ сохранитС Π΅Π³ΠΎ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ мСстС, Ρ‡Ρ‚ΠΎ ΠΈ Ρ„Π°ΠΉΠ» test.txt:

 handle = open("test.txt", "r")
Π΄Π°Π½Π½Ρ‹Π΅ = дСскриптор.Ρ‡Ρ‚Π΅Π½ΠΈΠ΅()
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π΄Π°Π½Π½Ρ‹Π΅)
Ρ€ΡƒΡ‡ΠΊΠ°.Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ()
 

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

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы чтСния Ρ„Π°ΠΉΠ»ΠΎΠ².

 дСскриптор = ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ("test.txt", "r")
data = handle.readline() # ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ строку
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π΄Π°Π½Π½Ρ‹Π΅)
Ρ€ΡƒΡ‡ΠΊΠ°.Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ()
 

Если Π²Ρ‹ запуститС этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ½ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку вашСго тСкстового Ρ„Π°ΠΉΠ»Π° ΠΈ распСчатаСт Π΅Π΅. Π­Ρ‚ΠΎ Π½Π΅ слишком ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ readlines() дСскриптора Ρ„Π°ΠΉΠ»Π°:

 handle = open("test.txt", "r")
data = handle.readlines() # ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π’Π‘Π• строки!
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π΄Π°Π½Π½Ρ‹Π΅)
Ρ€ΡƒΡ‡ΠΊΠ°.Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ()
 

ПослС запуска этого ΠΊΠΎΠ΄Π° Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ список Python, Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π½Ρ‹ΠΉ Π½Π° экранС, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ readlines : список! Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π° ΠΌΠΈΠ½ΡƒΡ‚ΠΊΡƒ научимся Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» нСбольшими порциями.

Как Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎ частям

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΏΠΎ частям β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ». Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ научимся Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» построчно, Π° Π·Π°Ρ‚Π΅ΠΌ научимся Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°ΠΌ Π·Π° Ρ€Π°Π·. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» для для нашСго ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

 дСскриптор = ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ("test.txt", "r")
для строки Π² Ρ€ΡƒΡ‡ΠΊΠ΅:
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (строка)
Ρ€ΡƒΡ‡ΠΊΠ°.Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ()
 

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ дСскриптор Ρ„Π°ΠΉΠ»Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ†ΠΈΠΊΠ» for для Π΅Π³ΠΎ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. Π’Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ всС Π²ΠΈΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Python (строки, списки, ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ, ΠΊΠ»ΡŽΡ‡ΠΈ Π² словарС ΠΈ Ρ‚. Π΄.). Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ довольно просто, Π²Π΅Ρ€Π½ΠΎ? Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΏΠΎ частям!

 дСскриптор = ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ("test.txt", "r")
ΠΏΠΎΠΊΠ° Π²Π΅Ρ€Π½ΠΎ:
    Π΄Π°Π½Π½Ρ‹Π΅ = дСскриптор.Ρ‡Ρ‚Π΅Π½ΠΈΠ΅(1024)
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π΄Π°Π½Π½Ρ‹Π΅)
    Ссли Π½Π΅ Π΄Π°Π½Π½Ρ‹Π΅:
        Π»ΠΎΠΌΠ°Ρ‚ΡŒ
 

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ†ΠΈΠΊΠ» Python while для чтСния ΠΏΠΎ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Ρƒ Ρ„Π°ΠΉΠ»Π° Π·Π° Ρ€Π°Π·. Как Π²Ρ‹, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚ β€” это 1024 Π±Π°ΠΉΡ‚Π° ΠΈΠ»ΠΈ символа. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ прСдставим, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ PDF.

Как Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»

Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΎΡ‡Π΅Π½ΡŒ просто. ВсС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ Ρ„Π°ΠΉΠ»Π°:

 handle = open("test.pdf", "rb")
 

Π˜Ρ‚Π°ΠΊ, Π½Π° этот Ρ€Π°Π· ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Ρ€Π΅ΠΆΠΈΠΌ Ρ„Π°ΠΉΠ»Π° Π½Π° rb , Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅-Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ΅ . Π’Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚Π΅ PDF-Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° ΠΈΠ»ΠΈ пСрСноситС Ρ„Π°ΠΉΠ»Ρ‹ с ПК Π½Π° ПК.

Π—Π°ΠΏΠΈΡΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Python

Если Π²Ρ‹ слСдили Π·Π° этим, Π²Ρ‹, вСроятно, догадались, ΠΊΠ°ΠΊΠΎΠΉ Ρ„Π»Π°Π³ Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ„Π°ΠΉΠ»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для записи Ρ„Π°ΠΉΠ»ΠΎΠ²: Β«wΒ» ΠΈ Β«wbΒ» для Ρ€Π΅ΠΆΠΈΠΌΠ° записи ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° записи Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ…ΠΎΡ€ΠΎΡˆΠΎ?

Π’ΠΠ˜ΠœΠΠΠ˜Π• : ΠŸΡ€ΠΈ использовании Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² Β«wΒ» ΠΈΠ»ΠΈ Β«wbΒ», Ссли Ρ„Π°ΠΉΠ» ΡƒΠΆΠ΅ сущСствуСт, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ пСрСзаписан Π±Π΅Π· прСдупрСТдСния! Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, сущСствуСт Π»ΠΈ Ρ„Π°ΠΉΠ», ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Python 9.ΠœΠΎΠ΄ΡƒΠ»ΡŒ 0007 ОБ . Π‘ΠΌ. Ρ€Π°Π·Π΄Π΅Π» os.path.exists Π² , Π³Π»Π°Π²Π° 16 .

 дСскриптор = ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ("test.txt", "w")
handle.write("Π­Ρ‚ΠΎ тСст!")
Ρ€ΡƒΡ‡ΠΊΠ°.Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ()
 

Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ просто! ВсС, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ здСсь сдСлали, это ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Ρ€Π΅ΠΆΠΈΠΌ Ρ„Π°ΠΉΠ»Π° Π½Π° Β«wΒ» ΠΈ Π²Ρ‹Π·Π²Π°Π»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ дСскриптора Ρ„Π°ΠΉΠ»Π° write , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ тСкст Π² Ρ„Π°ΠΉΠ». ДСскриптор Ρ„Π°ΠΉΠ»Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ writelines , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ список строк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дСскриптор Π·Π°Ρ‚Π΅ΠΌ записываСт Π½Π° диск ΠΏΠΎ порядку.

ИспользованиС with Operator

Π’ Python Π΅ΡΡ‚ΡŒ нСбольшая встроСнная функция with , ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для упрощСния чтСния ΠΈ записи Ρ„Π°ΠΉΠ»ΠΎΠ². ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ с создаСт Π² Python Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ извСстно ΠΊΠ°ΠΊ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ контСкста , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ автоматичСски Π·Π°ΠΊΡ€ΠΎΠ΅Ρ‚ Ρ„Π°ΠΉΠ», ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚:

 с open("test.txt") Π² качСствС file_handler:
    для строки Π² file_handler:
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (строка)
 

Бинтаксис для с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ странный, Π½ΠΎ Π²Ρ‹ довольно быстро Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ΡΡŒ. По сути, ΠΌΡ‹ замСняСм:

 handle = open("test.txt")
 

с этим:

 с open("test.txt") как file_handler:
 

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ всС ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выполняСтС, ΠΏΠΎΠΊΠ° Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ с . Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΠΏΠΎΠΊΠΈΠ½Π΅Ρ‚Π΅ этот Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, дСскриптор Ρ„Π°ΠΉΠ»Π° закроСтся, ΠΈ Π²Ρ‹ большС Π½Π΅ смоТСтС Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π”Π°, Π²Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π»ΠΈ это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Π’Π°ΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ явно Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ дСскриптор Ρ„Π°ΠΉΠ»Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Π΄Π΅Π»Π°Π΅Ρ‚ это автоматичСски! ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, смоТСтС Π»ΠΈ Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈΠ· этой Π³Π»Π°Π²Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ использовали ΠΌΠ΅Ρ‚ΠΎΠ΄ с .

ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ошибок

Иногда ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΡΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ нСприятныС Π²Π΅Ρ‰ΠΈ. Π€Π°ΠΉΠ» Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ процСсс ΠΈΠ»ΠΈ Ρƒ вас Π΅ΡΡ‚ΡŒ какая-Ρ‚ΠΎ ошибка Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Когда это ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, вСроятно, ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ошибка IOError . Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ ΠΎΡ‚Π»Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ошибки ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ способом ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΎΡ‚Π»Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ . Подсказка: идСя Π² основном ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π° Π² ΠΎΠ±ΠΎΠΈΡ…!

 ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅:
    file_handler = ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ("test.txt")
    для строки Π² file_handler:
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (строка)
ΠΊΡ€ΠΎΠΌΠ΅ IOError:
    print("ΠŸΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°!")
Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ²:
    file_handler.close()
 

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ try/except . ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС Π½Π° экран. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ finally 9ЗаявлСниС 0008. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π±Ρ‹ ΠΌΡ‹ сдСлали Ρ‚ΠΎ ΠΆΠ΅ самоС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ с :

 ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅:
    с open("test.txt") как file_handler:
        для строки Π² file_handler:
            ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (строка)
ΠΊΡ€ΠΎΠΌΠ΅ IOError:
    print("ΠŸΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°!")
 

Как Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, ΠΌΡ‹ просто Π·Π°Π²Π΅Ρ€Π½ΡƒΠ»ΠΈ Π±Π»ΠΎΠΊ Π² Π±Π»ΠΎΠΊ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. Π Π°Π·Π½ΠΈΡ†Π° здСсь Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ finally , Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ контСкста ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ Π·Π° нас.

ПодвСдСниС ΠΈΡ‚ΠΎΠ³ΠΎΠ²

К этому ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Python. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ старый ΡΡ‚ΠΈΠ»ΡŒ ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ со стилСм . Π’Ρ‹, скорСС всСго, ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΠ±Π° стиля Π² Π΄ΠΈΠΊΠΎΠΉ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, поставляСмыС с Python. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ!

Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Python: ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство

Python β€” это популярный язык программирования с ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ динамичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ для создания Π²Π΅Π±-сСрвисов, Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, сцСнариСв Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² машинного обучСния. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Π°ΠΌ часто приходится ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π½Π° основС Python.

НапримСр, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹ Π² качСствС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, записываСм тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹ Π² качСствС Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ часто ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Как ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ популярный язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, Python Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ кросс-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ². Python прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ стандартных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я объясню всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΎΠ± ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Python, Π² Ρ‚ΠΎΠΌ числС:

  • Π§Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²
  • Π—Π°ΠΏΠΈΡΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²
  • Π§Ρ‚Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Ρ„Π°ΠΉΠ»Π°
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Python
  • Π§Ρ‚Π΅Π½ΠΈΠ΅ содСрТимого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Python
  • Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²
  • Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ поиска Ρ„Π°ΠΉΠ»ΠΎΠ²
  • ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ² Python
  • ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²
  • ΠŸΠ΅Ρ€Π΅Π΄ΠΎΠ²ΠΎΠΉ ΠΎΠΏΡ‹Ρ‚

ΠŸΡ€Π΅Π΄ΠΏΠΎΡΡ‹Π»ΠΊΠΈ

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с руководством, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас установлСн ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Python 3. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС установитС послСдний ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Python ΠΈΠ· ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… выпусков. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° ΠΈΠ· этого руководства Π² своих ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Python.

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

Π’ качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ дСйствия Π΄Π°Π²Π°ΠΉΡ‚Π΅ напишСм ΠΊΠΎΠ΄ для чтСния тСкстового Ρ„Π°ΠΉΠ»Π°. Π‘Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для чтСния Ρ„Π°ΠΉΠ»ΠΎΠ².

Python ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ open для создания Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с нСсколькими Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Ρ€Π΅ΠΆΠΈΠΌ чтСния, Ρ€Π΅ΠΆΠΈΠΌ записи ΠΈ Ρ‚. Π΄. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ тСкстовый Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ myFile.txt ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ содСрТимоС.

 языков программирования
Π‘
Π‘++
ΠŸΠΈΡ‚ΠΎΠ½
JavaScript
Π˜Π΄Ρ‚ΠΈ
 

Π’Π΅ΠΏΠ΅Ρ€ΡŒ создайтС Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ main.py ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°.

 myFile = open("myFile.txt", "r") # ΠΈΠ»ΠΈ open("myFile.txt")
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ». Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ())
ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ».close()
 

ΠŸΠ΅Ρ€Π²Π°Ρ строка ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ΄Π° создаСт Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ myFile с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π°. ВстроСнная функция open создаСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π΅ΠΆΠΈΠΌ чтСния, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ прСдоставили Ρ„Π»Π°Π³ r Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€.

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ close , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ рСсурсы послС использования Ρ„Π°ΠΉΠ»Π°. 9ΠœΠ΅Ρ‚ΠΎΠ΄ 0211 read Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ содСрТимоС Ρ„Π°ΠΉΠ»Π°, поэтому Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ содСрТимоС послС выполнСния ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

ΠœΠ΅Ρ‚ΠΎΠ΄ read считываСт сразу вСсь Ρ„Π°ΠΉΠ». Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ всС сразу, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² Π±Π°ΠΉΡ‚Π°Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° read . НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° считываСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 11 Π±Π°ΠΉΡ‚ΠΎΠ².

 ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ» = ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ("ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ».txt", "r")
print(myFile.read(11)) # ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ».close()
 

Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ слово (Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Β») Π² качСствС Π²Ρ‹Π²ΠΎΠ΄Π°β€Šβ€”β€ŠΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ слово состоит ΠΈΠ· 11 Π±ΡƒΠΊΠ², Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΡƒΠΊΠ²Ρ‹ Ρ€Π°Π²Π΅Π½ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π±Π°ΠΉΡ‚Ρƒ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ ASCII. Если Π²Ρ‹ снова Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ read(11) , Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ 11 Π±Π°ΠΉΡ‚ΠΎΠ² («языки\nΒ»), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ курсор пСрСмСстился Π½Π° 11 ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° read(11) . Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ курсор ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Π½Π°Ρ‡Π°Π»ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ seek , ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

 ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ» = ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ("ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ».txt")
print(myFile.read(11)) # ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
print(myFile.read(10)) # языков
myFile.seek(0) # УстанавливаСт курсор Ρ„Π°ΠΉΠ»Π° Π² Π½Π°Ρ‡Π°Π»ΠΎ
print(myFile.read(11)) # ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ».close()
 

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ сцСнариСв Π»Π΅Π³ΠΊΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ содСрТимоС Ρ„Π°ΠΉΠ»Π° построчно. Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ построчный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ чтСния Ρ„Π°ΠΉΠ»ΠΎΠ²β€Š β€” β€ŠPython прСдоставляСт встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для чтСния Ρ„Π°ΠΉΠ»Π° построчно. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» построчно с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for-in ΠΈ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ , ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

 ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ» = ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ("ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ».txt", "r")
для строки Π² myFile.readlines():
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (строка)
ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ».close()
 

МоТно ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ€ строки с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for-enumerate β€Š β€Š, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ readlines Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ строки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΈΠΏ списка. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ содСрТимоС строки с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ строки.

 ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ» = ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ("ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ».txt", "r")
для i строка Π² enumerate(myFile.readlines()):
    print(i, line) # Π½ΠΎΠΌΠ΅Ρ€ строки ΠΈ содСрТимоС
ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ».close()
 

Π—Π°ΠΏΠΈΡΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° Python

Π Π°Π½Π΅Π΅ ΠΌΡ‹ создавали Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ чтСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„Π»Π°Π³ r . Π—Π°ΠΏΠΈΡΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ чтСния, поэтому ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ записи ( w ) для записи Ρ„Π°ΠΉΠ»ΠΎΠ².


Π‘ΠΎΠ»Π΅Π΅ 200Β 000 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ LogRocket для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ взаимодСйствия

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ β†’


Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌΡ‹ чтСния ΠΈ записи с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ r+ ΠΈΠ»ΠΈ w+ Ρ„Π»Π°Π³; ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π»Π°Π³ w+ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ….

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ запись Ρ„Π°ΠΉΠ»Π°, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π²Π²Π΅Π΄Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ тСкст Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» myFile.txt , написав Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠ΄ Python.

 языков программирования
Π ΠΆΠ°Π²Ρ‡ΠΈΠ½Π°
Π ΡƒΠ±ΠΈΠ½
Машинопись
Дартс
Π‘Π±ΠΎΡ€ΠΊΠ°
 

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ myFile.txt ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅ содСрТимым.

 ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ» = ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ("ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ».txt", "w")
content = """Π―Π·Ρ‹ΠΊΠΈ программирования
Π ΠΆΠ°Π²Ρ‡ΠΈΠ½Π°
Π ΡƒΠ±ΠΈΠ½
Машинопись
Дартс
Π‘Π±ΠΎΡ€ΠΊΠ°"""
myFile.write(содСрТимоС)
ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ».close()
 

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ содСрТимоС тСкстового Ρ„Π°ΠΉΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ синтаксис многострочных строк Python, ΠΈ ΠΌΡ‹ записали содСрТимоС Π² Ρ„Π°ΠΉΠ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ write . ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΆΠΈΠΌ записи с Ρ„Π»Π°Π³ΠΎΠΌ w β€” ΠΈΠ½Π°Ρ‡Π΅ опСрация записи Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ с ошибкой io.UnsupportedOperation .

Иногда Π½Π°ΠΌ часто приходится Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ содСрТимоС ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ. Π’ этих сцСнариях Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись всСго содСрТимого Π½Π΅ являСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈΠ·-Π·Π° Π±ΠΎΠ»Π΅Π΅ высокого потрСблСния рСсурсов. ВмСсто этого ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ добавлСния ( ΠΈ ).

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄. Он Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ язык программирования Π² список Π² myFile.txt .

 ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ» = ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ("ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ».txt", "Π°")
myFile.write("\nΠ‘Π°Ρˆ")
ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ».close()
 

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° добавляСт Π½ΠΎΠ²Ρ‹ΠΉ символ строки ( \n ) ΠΈ Π½ΠΎΠ²ΠΎΠ΅ слово Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» Π±Π΅Π· записи всСго содСрТимого Ρ„Π°ΠΉΠ»Π°. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π½ΠΎΠ²ΡƒΡŽ запись Π² нашСм спискС языков программирования. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ большС записСй ΠΈ посмотритС, Ρ‡Ρ‚ΠΎ получится!

Π§Ρ‚Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Ρ„Π°ΠΉΠ»Π° Π² Python

Помимо исходного содСрТимого Ρ„Π°ΠΉΠ»Π°, Ρ„Π°ΠΉΠ» Π½Π° дискС Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Ρ„Π°ΠΉΠ»Π°, Π² Ρ‚ΠΎΠΌ числС Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€, врСмя послСднСго измСнСния, врСмя послСднСго доступа ΠΈ Ρ‚. Π΄.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ Ρ„Π°ΠΉΠ»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ отобраТаСтся Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°, врСмя послСднСго доступа ΠΈ врСмя послСднСго измСнСния.

 ΠΈΠΌΠΏΠΎΡ€Ρ‚ ОБ, врСмя
stat = os.stat("myFile.txt")
print("Π Π°Π·ΠΌΠ΅Ρ€: %s Π±Π°ΠΉΡ‚" % stat.st_size)
print("ПослСдний доступ: %s" % time. ctime(stat.st_atime))
print("ПослСднСС измСнСниС: %s" % time.ctime(stat.st_mtime))
 

Ѐункция os.stat Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² статистики с мноТСством свСдСний ΠΎΠ± Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°Ρ… Ρ„Π°ΠΉΠ»Π°. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ использовали st_size для получСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ„Π°ΠΉΠ»Π°, at_atime для получСния ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ послСднСго обращСния ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΈ st_mtime для получСния ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ послСднСго измСнСния. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² статистики ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ вашСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. НапримСр, Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Windows Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ спСцифичныС для Windows Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Ρ„Π°ΠΉΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ st_file_attributes 9.ΠΊΠ»ΡŽΡ‡ 0212.

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ os.path.getsize Π±Π΅Π· получСния всСх ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠ΄Π΅.

 ΠΈΠΌΠΏΠΎΡ€Ρ‚ ОБ, врСмя
Ρ€Π°Π·ΠΌΠ΅Ρ€ = os.path.getsize("myFile.txt")
print("Π Π°Π·ΠΌΠ΅Ρ€: %s Π±Π°ΠΉΡ‚" % Ρ€Π°Π·ΠΌΠ΅Ρ€)
 

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

Python ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ os. mkdir для создания Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° создаСт myFolder Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

 ΠΈΠΌΠΏΠΎΡ€Ρ‚ ОБ
os.mkdir ("моя папка")
 

Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ рСкурсивно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ нСсколько ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ сбой. НапримСр, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сразу ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ myFolder/abc , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ создания Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ функция os.makedirs , ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

 ΠΈΠΌΠΏΠΎΡ€Ρ‚ ОБ
os.makedirs("myFolder/abc") # Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ ΠΈ "myFolder", ΠΈ "abc"
 

Π§Ρ‚Π΅Π½ΠΈΠ΅ содСрТимого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Python

Python Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт простой API для Π²Ρ‹Π²ΠΎΠ΄Π° списка содСрТимого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ os.listdir . Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄Π° пСрСчислСны всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π² вашСм Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

 ΠΈΠΌΠΏΠΎΡ€Ρ‚ ОБ
cur_dir = os.getcwd()
записи = os.listdir (cur_dir)
print("НайдСно %s записСй в %s" % (len(entries), cur_dir))
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ('-' * 10)
для записи в записи:
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π²Π²ΠΎΠ΄)
 

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ скрипт, ΠΎΠ½ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ записи вашСго Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сцСнарий ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ записи этого ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ os.getcwd для получСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.

Иногда Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ рСкурсивно ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ содСрТимоС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Ѐункция os.walk ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΌ с рСкурсивным листингом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ рСкурсивно Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ список всСх записСй Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.

 ΠΈΠΌΠΏΠΎΡ€Ρ‚ ОБ
cur_dir = os.getcwd()
для root, sub_dirs, Ρ„Π°ΠΉΠ»ΠΎΠ² Π² os.walk(cur_dir):
    rel_root = os.path.relpath(ΠΊΠΎΡ€Π΅Π½ΡŒ)
    print("Показ записСй %s" % rel_root)
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ("-" * 10)
    для записи Π² sub_dirs + Ρ„Π°ΠΉΠ»Ρ‹:
            ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π²Π²ΠΎΠ΄)
 

Ѐункция os.walk ΠΈΠΌΠ΅Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΠ²Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ. Он Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Ρ€ΠΈ значСния для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записи:

.
  • ΠšΠΎΡ€Π΅Π½ΡŒ
  • ΠŸΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ
  • Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ записи

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ использовали ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ root , sub_dirs ΠΈ files соотвСтствСнно с Ρ†ΠΈΠΊΠ»ΠΎΠΌ for для Π·Π°Ρ…Π²Π°Ρ‚Π° всСх записСй.

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

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ os.remove для удалСния Ρ„Π°ΠΉΠ»Π°. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ os.path.exists функция ΠΏΠ΅Ρ€Π΅Π΄ os.remove для прСдотвращСния ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ΄Π°.

 ΠΈΠΌΠΏΠΎΡ€Ρ‚ ОБ
file_to_remove = "ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ».txt"
Ссли os.path.exists(file_to_remove):
    os.remove (Ρ„Π°ΠΉΠ»_для_удалСния)
Π΅Ρ‰Π΅:
    print("%s Π½Π΅ сущСствуСт!" % file_to_remove)
 

Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Python Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ os.rmdir для удалСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Он Π²Π΅Π΄Π΅Ρ‚ сСбя Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ os.mkdir ΠΈ Π½Π΅ удаляСт ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Ссли Π² Π½Π΅ΠΌ Π΅ΡΡ‚ΡŒ записи. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°.

 ΠΈΠΌΠΏΠΎΡ€Ρ‚ ОБ
dir_to_remove = "моя папка"
Ссли os.path.exists(dir_to_remove):
    os.rmdir(dir_to_remove)
Π΅Ρ‰Π΅:
    print("%s Π½Π΅ сущСствуСт!" % dir_to_remove)
 

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ссли myFolder содСрТит Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ°ΠΏΠΊΠΈ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Ρ‹. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° для рСкурсивного удалСния ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.

 ΠΈΠΌΠΏΠΎΡ€Ρ‚ ос, ΡˆΡƒΡ‚ΠΈΠ»
dir_to_remove = "моя папка"
Ссли os.path.exists(dir_to_remove):
    Shutil.rmtree(dir_to_remove) # РСкурсивно ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС записи
Π΅Ρ‰Π΅:
    print("%s Π½Π΅ сущСствуСт!" % dir_to_remove)
 

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ поиска Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Python

Когда ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ со скриптами Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ поиск Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° дискС. НапримСр, программистам часто Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ², Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ своих сцСнариСв Python. БущСствуСт нСсколько Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΊ поиску Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Python:

  • Поиск всСх записСй с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ os.listdir ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записи с условиСм if Π²Π½ΡƒΡ‚Ρ€ΠΈ для пСтля
  • РСкурсивный поиск всСх записСй с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ os.walktree ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записи с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ условия if Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° for .
  • Запрос всСх записСй с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ glob. glob ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… записСй

Π’ Ρ†Π΅Π»ΠΎΠΌ, Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° сцСнариСв, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ, ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ минимального ΠΊΠΎΠ΄Π° со стороны Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° (большС Pythonic). Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ поиск Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ модуля Python glob.

 ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ глобус, ОБ
запрос = "**/*.py"
записи = glob.glob (запрос, рСкурсивный = Π˜ΡΡ‚ΠΈΠ½Π°)
no_of_entries = len(записи)
Ссли no_of_entries == 0:
    print("НСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΏΠΎ запросу: %s" % запрос)
Π΅Ρ‰Π΅:
    print("НайдСно %s Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² для запроса: %s" % (no_of_entries, запрос))
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ("-" * 10)
для записи в записи:
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π²Π²ΠΎΠ΄)
 

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄ рСкурсивно ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ всС исходныС Ρ„Π°ΠΉΠ»Ρ‹ Python Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π΅ Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΈ ( ** ) Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ запроса ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Python Π½Π° поиск Π²ΠΎ всСх ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…, Π° послСдняя Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ° относится ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°.

ЗапуститС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ сцСнарий. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ исходныС Ρ„Π°ΠΉΠ»Ρ‹ Python, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ поиск Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ запроса .

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Python

Π Π°Π½Π΅Π΅ ΠΌΡ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈ тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹. ВстроСнная функция open создаСт Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² тСкстовом Ρ€Π΅ΠΆΠΈΠΌΠ΅ ( t ) ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. НСтСкстовыС Ρ„Π°ΠΉΠ»Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, zip-Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΡ„Π°ΠΉΠ»Ρ‹, нСльзя ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹β€Šβ€Šβ€ŠΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Π΅ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° английском языкС. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠ°ΠΊ нСтСкстовыС Ρ„Π°ΠΉΠ»Ρ‹ посрСдством ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π°ΠΉΡ‚ΠΎΠ² (ΠΈΠ»ΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π±ΠΈΡ‚ΠΎΠ²).

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ напишСм Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с нСсколькими Π±Π°ΠΉΡ‚Π°ΠΌΠΈ. ΠœΡ‹ собираСмся ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π±Π°ΠΉΡ‚Ρ‹ Π² myFile.bin .

 01010000 01111001 01110100 01101000 01101111 01101110
 

Для простоты ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ дСсятичными значСниями соотвСтствСнно.

 80 121 116 104 111 110
 

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π² исходный Ρ„Π°ΠΉΠ» Python ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ».

 myBinaryFile = open("myFile.bin", "wb") # wb -> Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»
Π±Π°ΠΉΡ‚Ρ‹ = массив Π±Π°ΠΉΡ‚ΠΎΠ² ([80, 121, 116, 104, 111, 110])
myBinaryFile.write(Π±Π°ΠΉΡ‚Ρ‹)
ΠΌΠΎΠΉ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ».close()
 

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ экзСмпляр Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ массива Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ записи Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ использовали Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ ( b ) для создания Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ПослС выполнСния ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ΄Π° ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ созданный myFile.bin Π² своСм любимом тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

ΠœΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Β«PythonΒ» Π² качСствС Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π±Π°ΠΉΡ‚Ρ‹ массива Π±Π°ΠΉΡ‚ΠΎΠ² ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ извСстныС символы ASCII. НапримСр, 80 ( 01010000 ) прСдставляСт Π±ΡƒΠΊΠ²Ρƒ P Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ ASCII. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ сохранили Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ тСкст Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΏΠΎΡ‡Ρ‚ΠΈ всС Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ содСрТат Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π±Π°ΠΉΡ‚ΠΎΠ². ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» изобраТСния Ρ‡Π΅Ρ€Π΅Π· тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ чтСния Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ΄Π°.

 myBinaryFile = ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ("myFile.bin", "rb")
Π±Π°ΠΉΡ‚Ρ‹ = myBinaryFile.read()
print(bytes) # bytearray(b'Python')
print("Bytes: ", list(bytes)) # Bytes: [80, 121, 116, 104, 111, 110]
ΠΌΠΎΠΉ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ».close()
 

Python Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π±Π°ΠΉΡ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° чтСния для Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π»ΠΈ Π±Π°ΠΉΡ‚Ρ‹ Π² экзСмпляр bytearray , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ конструктор bytearray .

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π°Ρ€Ρ…ΠΈΠ²Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ с Π²Π΅Π±-прилоТСниями, Π²Π΅Π±-слуТбами, Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ прилоТСниями ΠΈ слуТСбными ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ Π½Π° основС Python для ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ»ΠΈ Π²Π²ΠΎΠ΄Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ². НапримСр, Ссли Π²Ρ‹ создаСтС Π²Π΅Π±-Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ созданного zip-Ρ„Π°ΠΉΠ»Π°.

Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°

Python ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ API-интСрфСйсы для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π°Ρ€Ρ…ΠΈΠ²Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Shutil . Для Π½Π°Ρ‡Π°Π»Π° создадим Π°Ρ€Ρ…ΠΈΠ² с содСрТимым myFolder . ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ создайтС myFolder ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² Π½Π΅Π³ΠΎ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄ запуском Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ΄Π°.

 ΠΈΠΌΠΏΠΎΡ€Ρ‚Π½Ρ‹ΠΉ ΡˆΡƒΡ‚ΠΈΠ»
output_file = "ΠΌΠΎΠΉ Π°Ρ€Ρ…ΠΈΠ²"
input_dir = "моя папка"
Shutil.make_archive(Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ_Ρ„Π°ΠΉΠ», "zip", Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ_ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³)
 

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π°Ρ€Ρ…ΠΈΠ²Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² myNewFolder со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

 ΠΈΠΌΠΏΠΎΡ€Ρ‚Π½Ρ‹ΠΉ ΡˆΡƒΡ‚ΠΈΠ»
input_file = "мойАрхив.zip"
output_dir = "МояНоваяПапка"
Shutil.unpack_archive (Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ_Ρ„Π°ΠΉΠ», Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ_ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³)
 

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Shutil Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ кросс-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ API для копирования ΠΈ пСрСмСщСния Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

 ΠΈΠΌΠΏΠΎΡ€Ρ‚Π½Ρ‹ΠΉ ΡˆΡƒΡ‚ΠΈΠ»
# ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ main.py -> main_copy.py
Shutil.copy("main.py", "main_copy.py")
# ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ (ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ) main_copy.py -> main_backup.py
Shutil.move("main_copy.py", "main_backup.py")
# рСкурсивная копия myFolder -> myFolder_copy
Shutil. copytree ("моя папка", "myFolder_copy")
# ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ (ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ) myFolder_copy -> myFolder_backup
# Ссли myFolder_backup сущСствуСт, исходник пСрСмСщаСтся Π²Π½ΡƒΡ‚Ρ€ΡŒ ΠΏΠ°ΠΏΠΊΠΈ
Shutil.move("myFolder_copy", "myFolder_backup")
Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ("Π“ΠΎΡ‚ΠΎΠ²ΠΎ")
 

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Python

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌ кодирования. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ программисты Python Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ кодирования ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.

НапримСр, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ программисты ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ закрытия Ρ„Π°ΠΉΠ»ΠΎΠ² try-finally Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. НСкоторыС программисты ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ сборщику мусора Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ„Π°ΠΉΠ»Π°, опуская Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° close , Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ. ΠœΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌ, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ программисты ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ синтаксис с для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ².

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ я ΠΏΠΎΠ΄Ρ‹Ρ‚ΠΎΠΆΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Python. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, взглянитС Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слСдуСт рСкомСндациям ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ².

 ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ print_file_content (имя Ρ„Π°ΠΉΠ»Π°):
    с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ (имя Ρ„Π°ΠΉΠ»Π°) ΠΊΠ°ΠΊ myFile:
        содСрТимоС = ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ».read()
        Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ (содСрТаниС)
file_to_read = "ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ».txt"
ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ:
    print_file_content (Ρ„Π°ΠΉΠ»_для_чтСния)
ΠΊΡ€ΠΎΠΌΠ΅:
    print("НСвозмоТно ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» %s " % file_to_read)
Π΅Ρ‰Π΅:
    print("УспСшно Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ содСрТимоС %s" % file_to_read)
 

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ использовали ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово с , Ρ‡Ρ‚ΠΎΠ±Ρ‹ нСявно Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ„Π°ΠΉΠ»Π°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±Π»ΠΎΠΊΠ° try-except. Пока Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ² Python, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ваш ΠΊΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹.

  • Никогда Π½Π΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ β€Š β€” β€ŠΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ с Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌΠΈ процСссами Python. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ для простых слуТСбных сцСнариСв, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ΅ΡˆΠ°ΡŽΡ‚ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ слуТСбных сцСнариСв
  • .
  • Если Π²Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ синтаксис с , ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ мусора Python очистит Π½Π΅Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², Π½ΠΎ всСгда ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нашСго ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ использования рСсурсов
  • .
  • ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠΉΡ‚Π΅ синтаксис ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅. НапримСр, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ синтаксис для всСх мСст, Π³Π΄Π΅ Π²Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ Ρ„Π°ΠΉΠ»
  • .
  • Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ открытия ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ записи с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². ВмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ flush ΠΈ seek , ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
 def process_file (имя Ρ„Π°ΠΉΠ»Π°):
    с open(имя Ρ„Π°ΠΉΠ»Π°, "w+") ΠΊΠ°ΠΊ myFile:
    # w+: Ρ‡Ρ‚Π΅Π½ΠΈΠ΅/запись ΠΈ созданиС, Ссли Π½Π΅ сущСствуСт, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ r+
        # ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚
        myFile.write("ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠŸΠΈΡ‚ΠΎΠ½!")
        print("ПолоТСниС курсора: ", myFile.tell()) # 13
        # Π‘Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Π±ΡƒΡ„Π΅Ρ€
        ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ».flush()
        # Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ курсор Π² Π½Π°Ρ‡Π°Π»ΠΎ
        myFile. seek(0)
        print("ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ курсора: ", myFile.tell()) # 0
        # Π Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚
        содСрТимоС = ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ».read()
        Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ (содСрТаниС)
        print("ПолоТСниС курсора: ", myFile.tell()) # 13
file_to_read = "ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ».txt"
ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ:
    process_file (file_to_read)
ΠΊΡ€ΠΎΠΌΠ΅:
    print("НСвозмоТно ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» %s " % file_to_read)
Π΅Ρ‰Π΅:
    print("УспСшно ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ %s" % file_to_read) 

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π²Ρ‹ΡˆΠ΅ содСрТимоС сначала сохраняСт строку Π² Ρ„Π°ΠΉΠ». ПослС этого ΠΎΠ½ снова считываСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, сбрасывая Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Π±ΡƒΡ„Π΅Ρ€. ΠœΠ΅Ρ‚ΠΎΠ΄ flush ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ сохранСнныС Π΄Π°Π½Π½Ρ‹Π΅ Π² памяти, поэтому ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° seek(0) для сброса курсора Π² Π½Π°Ρ‡Π°Π»ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ write устанавливаСт Π΅Π³ΠΎ Π² ΠΊΠΎΠ½Π΅Ρ†.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

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

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Python β€” ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ язык ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ популярными языками программирования. ИмСя это Π² Π²ΠΈΠ΄Ρƒ, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ свой скрипт Python, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ слишком ΠΌΠ½ΠΎΠ³ΠΎ рСсурсов. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, обрабатывая большиС тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹ построчно, Π½Π΅ обрабатывая всС содСрТимоС сразу.

Π’ этом руководствС ΠΌΡ‹ обсудили ΠΎΠ±Ρ‰ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ тСкстовых Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ², Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, стоит Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈΠ»ΠΈ стандартный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ csv для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² CSV ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ PyPDF2 для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² PDF. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, стандартный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ pickle ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ (ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ².

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ (Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ) тСкстовый Ρ„Π°ΠΉΠ» Π² Python

Автор: Π‘Ρ‚ΠΈΠ² КэмпбСлл

Часов

ОбновлСно

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² Python

Π’ Python Π½Π΅Ρ‚ нСобходимости ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ внСшнюю Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ для чтСния ΠΈ записи Ρ„Π°ΠΉΠ»ΠΎΠ². Python прСдоставляСт Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для создания, записи ΠΈ чтСния Ρ„Π°ΠΉΠ»ΠΎΠ².

Как ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ тСкстовый Ρ„Π°ΠΉΠ» Π² Python

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ», Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ open . Ѐункция открытия Ρ„Π°ΠΉΠ»Π° Python Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, содСрТащий ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ для выполнСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Python.

Бинтаксис Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ открытия Ρ„Π°ΠΉΠ»Π° Python

 file_object = open("имя Ρ„Π°ΠΉΠ»Π°", "Ρ€Π΅ΠΆΠΈΠΌ") 

Π—Π΄Π΅ΡΡŒ

  • имя Ρ„Π°ΠΉΠ»Π°: Π΄Π°Π΅Ρ‚ имя Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΊΡ€Ρ‹Π» Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.
  • Ρ€Π΅ΠΆΠΈΠΌ: Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° сообщаСт Π²Π°ΠΌ, Π² ΠΊΠ°ΠΊΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π±Ρ‹Π» ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Ρ„Π°ΠΉΠ».

Π‘ΠΎΠ»Π΅Π΅ подробная информация ΠΎΠ± этих Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… описана Π½ΠΈΠΆΠ΅.

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ тСкстовый Ρ„Π°ΠΉΠ» Π² Python9.txt) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ продСмонстрировали здСсь:

Π¨Π°Π³ 1) ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» .txt

 f= open("guru99.txt","w+") 
  • ΠœΡ‹ объявили ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ β€œ fΒ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ guru99.txt. Open ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ 2 Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°: Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ, ΠΈ строку, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ Π²ΠΈΠ΄Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ с Ρ„Π°ΠΉΠ»ΠΎΠΌ
  • .
  • Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ использовали Π±ΡƒΠΊΠ²Ρƒ Β«wΒ» Π² нашСм Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅, которая ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Python Π½Π° запись Π² Ρ„Π°ΠΉΠ», ΠΈ ΠΎΠ½ создаст Ρ„Π°ΠΉΠ» Π² Python, Ссли ΠΎΠ½ Π½Π΅ сущСствуСт Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ 9.0180
  • Π—Π½Π°ΠΊ плюс ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ создания Ρ„Π°ΠΉΠ»Π° Python.

Π¨Π°Π³ 2) Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ»

 для i в диапазонС (10):
     f.write("Π­Ρ‚ΠΎ строка %d\r\n" % (i+1)) 
  • Π£ нас Π΅ΡΡ‚ΡŒ Ρ†ΠΈΠΊΠ» for, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ ΠΈΠ· 10 чисСл.
  • ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ записи для Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ».
  • Π’Ρ‹Π²ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅, это «это Π½ΠΎΠΌΠ΅Ρ€ строки», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ объявляСм с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ записи Ρ„Π°ΠΉΠ»Π° Python, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ d (ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅ число)
  • Π˜Ρ‚Π°ΠΊ, Π² основном ΠΌΡ‹ Π²Π²ΠΎΠ΄ΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ строки, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ пишСм, Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π΅Π³ΠΎ Π² Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ ΠΈ символ Π½ΠΎΠ²ΠΎΠΉ строки
  • .

Π¨Π°Π³ 3) Π—Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ экзСмпляр Ρ„Π°ΠΉΠ»Π°

 f.close() 
  • Π­Ρ‚ΠΎ Π·Π°ΠΊΡ€ΠΎΠ΅Ρ‚ экзСмпляр Ρ„Π°ΠΉΠ»Π° guru99.txt, сохранСнный

Π’ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ послС выполнСния ΠΊΠΎΠ΄Π° для создания тСкстового Ρ„Π°ΠΉΠ»Π° Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Python:

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ тСкстовый Ρ„Π°ΠΉΠ» Π² Python

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° тСкстовый Ρ„Π°ΠΉΠ» Π² нашСм случаС Β«guru99.txtΒ» ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ создания тСкстового Ρ„Π°ΠΉΠ»Π° Π² Python


Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ тСкстовый Ρ„Π°ΠΉΠ» Π² Python

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ/Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ тСкст Π² ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ Π² Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ».

Π¨Π°Π³ 1)

 f=open("guru99. txt", "a+") 

Π•Ρ‰Π΅ Ρ€Π°Π·, Ссли Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π·Π½Π°ΠΊ плюс Π² ΠΊΠΎΠ΄Π΅, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ создаст Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Ссли это ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Π½Π΅ сущСствуСт. Но Π² нашСм случаС Ρƒ нас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ», поэтому Π½Π°ΠΌ Π½Π΅ трСбуСтся ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ добавлСния Π² Ρ„Π°ΠΉΠ» Π² Python.

Π¨Π°Π³ 2)

 для i в диапазонС (2):
     f.write("ДобавлСнная строка %d\r\n" % (i+1)) 

Π­Ρ‚ΠΎ Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ» Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ добавлСния.

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ тСкстовый Ρ„Π°ΠΉΠ» Π² Python

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ Β«guru99.txtΒ». Π’Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ добавлСния Python Π² Ρ„Π°ΠΉΠ».

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ добавлСния тСкстового Ρ„Π°ΠΉΠ»Π° Π² Python

Как Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² Python

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² Python, Π²Ρ‹Π·Π²Π°Π² Ρ„Π°ΠΉΠ» .txt Π² Β«Ρ€Π΅ΠΆΠΈΠΌΠ΅ чтСния» (r).

Π¨Π°Π³ 1) ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ чтСния

 f=open("guru99.txt", "r") 

Π¨Π°Π³ 2) ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ€Π΅ΠΆΠΈΠΌΠ° Π² ΠΊΠΎΠ΄Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Если Π΄Π°, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ

 if f.mode == 'r': 

Π¨Π°Π³ 3) Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ f.read для чтСния Π΄Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π° ΠΈ сохранСния ΠΈΡ… Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ содСрТимом для чтСния Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Python

contents =f. Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ() 

Π¨Π°Π³ 4) Π Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ содСрТимоС ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½ΠΎΠ³ΠΎ тСкстового Ρ„Π°ΠΉΠ»Π° Python

Π’ΠΎΡ‚ Π²Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Python:

Как Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² Python


Как Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» построчно Π² Python

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» .txt построчно, Ссли ваши Π΄Π°Π½Π½Ρ‹Π΅ слишком Π²Π΅Π»ΠΈΠΊΠΈ для чтСния. Код readlines() Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ ваши Π΄Π°Π½Π½Ρ‹Π΅ Π² ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ для чтСния Ρ€Π΅ΠΆΠΈΠΌΠ΅.

Как ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» построчно Π² Python

ΠŸΡ€ΠΈ запускС ΠΊΠΎΠ΄Π° ( f1=f.readlines()) для чтСния Ρ„Π°ΠΉΠ»Π° построчно Π² Python, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ строку ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π² Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Π’ нашСм случаС строка короткая ΠΈ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Π°Ρ, Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Ρ€Π΅ΠΆΠΈΠΌ чтСния. Но Ссли Π΅ΡΡ‚ΡŒ слоТный Ρ„Π°ΠΉΠ» Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ читаСтся, этот Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½.

Π Π΅ΠΆΠΈΠΌΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Python

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Python :

РСТим ОписаниС
Β«Ρ€Β» Π­Ρ‚ΠΎ Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» для чтСния.
β€˜Ρˆβ€™ Π­Ρ‚ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» для записи.
Если Ρ„Π°ΠΉΠ» Π½Π΅ сущСствуСт, создаСтся Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ».
Если Ρ„Π°ΠΉΠ» сущСствуСт, ΠΎΠ½ усСкаСтся.
β€˜Ρ…β€™ Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ». Если Ρ„Π°ΠΉΠ» ΡƒΠΆΠ΅ сущСствуСт, опСрация Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ошибкой.
Β«Π°Β» ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ добавлСния.
Если Ρ„Π°ΠΉΠ» Π½Π΅ сущСствуСт, создаСтся Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ».
β€˜Ρ‚β€™ Π­Ρ‚ΠΎ Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Он открываСтся Π² тСкстовом Ρ€Π΅ΠΆΠΈΠΌΠ΅.
β€˜Π±β€™ Π­Ρ‚ΠΎ открываСтся Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.
Β«+Β» Π­Ρ‚ΠΎ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Ρ„Π°ΠΉΠ» для чтСния ΠΈ записи (обновлСния)

Π’ΠΎΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для Python print() to File Example

Python 2 ΠŸΡ€ΠΈΠΌΠ΅Ρ€

 def main():
     f= ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ("guru99. txt","w+")
     #f=ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ("guru99.txt","Π°+")
     для я в диапазонС (10):
         f.write("Π­Ρ‚ΠΎ строка %d\r\n" % (i+1))
     Π΅.Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ()
     #ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΈ Ρ‡ΠΈΡ‚Π°Π΅ΠΌ содСрТимоС
     #f=ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ("Π³ΡƒΡ€Ρƒ99.txt", "Ρ€")
     # Ссли f.mode == 'r':
     # содСрТимоС =f.read()
     # Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ содСрТимоС
     #ΠΈΠ»ΠΈ, readlines считываСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ строку Π² список
     #fl =f.readlines()
     #для x в fl:
     #Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Ρ…
Ссли __name__== "__main__":
  main() 

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Python 3

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Python print() Π² Ρ„Π°ΠΉΠ»:

 def main():
    f= ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ("guru99.txt","w+")
    #f=ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ("guru99.txt","Π°+")
    для я в диапазонС (10):
         f.write("Π­Ρ‚ΠΎ строка %d\r\n" % (i+1))
    Π΅.Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ()
    #ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΈ Ρ‡ΠΈΡ‚Π°Π΅ΠΌ содСрТимоС
    #f=ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ("Π³ΡƒΡ€Ρƒ99.txt", "Ρ€")
    #if f.mode == 'r':
    # содСрТимоС =f.read()
    # Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ (содСрТимоС)
    #ΠΈΠ»ΠΈ, readlines считываСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ строку Π² список
    #fl =f.readlines()
    #для x в fl:
    # ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Ρ…)
Ссли __name__== "__main__":
  main() 

Π‘Π²ΠΎΠ΄ΠΊΠ°

  • Python позволяСт Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ open(«filename», «w+») для создания тСкстового Ρ„Π°ΠΉΠ»Π° Python.