open ()
Last updated
Was this helpful?
Last updated
Was this helpful?
ΠΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠ°ΠΉΠ» file ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΡΠ»ΠΈ ΡΠ°ΠΉΠ» Π½Π΅ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ° OSError. Π‘ΠΌ. Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«Π§ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²Β».
file - ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΠΎΡ
ΠΎΠΆΠΈΠΉ Π½Π° ΠΏΡΡΡ, Π·Π°Π΄Π°ΡΡΠΈΠΉ ΠΈΠΌΡ ΠΏΡΡΠΈ (Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΠ΅ΠΌΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ) ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ°ΠΉΠ»Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠ½ΡΡΡ. (ΠΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ, ΠΎΠ½ Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ Π·Π°ΠΊΡΡΡΠΈΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, Π΅ΡΠ»ΠΈ Π΄Π»Ρ closefd Π½Π΅ Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ False
.)
mode - Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ°, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ°Ρ ΡΠ΅ΠΆΠΈΠΌ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΉΠ». ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ 'r'
, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΡΠΊΡΡΡΠΈΠ΅ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ 'w'
Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ (ΡΠ΄Π°Π»ΡΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π°, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ), 'x'
Π΄Π»Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ 'a'
Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ (ΡΡΠΎ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
Unix ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π² ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠΎΠΈΡΠΊΠ°). Π ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π΅ΡΠ»ΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ: locale.getpreferredencoding (False)
Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ·ΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ°. (ΠΠ»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΡΡΡΡ
Π±Π°ΠΉΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΈ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΠΉΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ.) ΠΠΎΡΡΡΠΏΠ½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ:
Π‘ΠΈΠΌΠ²ΠΎΠ» mode
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅
'r'
ΠΎΡΠΊΡΡΡΡ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ)
'w'
ΠΎΡΠΊΡΡΡΡ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ, ΡΠ΄Π°Π»ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π°
'x'
ΠΎΡΠΊΡΡΡΡ Π΄Π»Ρ ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΡΠ±ΠΎΠΉ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ
'a'
ΠΎΡΠΊΡΡΡΡ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ, Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π°, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ
'b'
Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ
't'
ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ)
'+'
ΠΎΡΠΊΡΡΡΡ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ (ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ)
Π Π΅ΠΆΠΈΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - 'r'
(ΠΎΡΠΊΡΡΡΡ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ°, ΡΠΈΠ½ΠΎΠ½ΠΈΠΌ 'rt'
). Π Π΅ΠΆΠΈΠΌΡ 'w+'
ΠΈ 'w+b'
ΠΎΡΠΊΡΡΠ²Π°ΡΡ ΠΈ ΠΎΠ±ΡΠ΅Π·Π°ΡΡ ΡΠ°ΠΉΠ». Π Π΅ΠΆΠΈΠΌΡ 'r +'
ΠΈ 'r+b'
ΠΎΡΠΊΡΡΠ²Π°ΡΡ ΡΠ°ΠΉΠ» Π±Π΅Π· ΡΡΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π² ΠΎΠ±Π·ΠΎΡΠ΅, Python ΡΠ°Π·Π»ΠΈΡΠ°Π΅Ρ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄. Π€Π°ΠΉΠ»Ρ, ΠΎΡΠΊΡΡΡΡΠ΅ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ (Π²ΠΊΠ»ΡΡΠ°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ 'b'
ΡΠ΅ΠΆΠΈΠΌΠ°), Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠ°ΠΊ Π±Π°ΠΉΡΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° Π²ΠΊΠ»ΡΡΠ΅Π½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠ΅ΠΆΠΈΠΌΠ° 't'
) ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠ° str, Π±Π°ΠΉΡΡ Π±ΡΠ»ΠΈ ΡΠ½Π°ΡΠ°Π»Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π·Π°Π²ΠΈΡΡΡΠ΅ΠΉ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΠ»ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ encoding, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π·Π°Π΄Π°Π½Π°.
Π Π°Π·ΡΠ΅ΡΠ΅Π½ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΡΠ΅ΠΆΠΈΠΌΠ° 'U'
, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΈ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ. Π Π°Π½Π΅Π΅ ΠΎΠ½ Π²ΠΊΠ»ΡΡΠ°Π» ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ°Π» ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² Python 3.0. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ.
buffering - Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ΅ΡΠ΅Π΄Π°ΠΉΡΠ΅ 0, ΡΡΠΎΠ±Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ (ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅), 1, ΡΡΠΎΠ±Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΠΎΡΡΡΠΎΡΠ½ΡΡ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ (ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅), ΠΈ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ > 1, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π² Π±Π°ΠΉΡΠ°Ρ Π±ΡΡΠ΅ΡΠ° ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°. ΠΡΠ»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ buffering Π½Π΅ ΡΠΊΠ°Π·Π°Π½, ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π±ΡΡΠ΅ΡΠΈΠ·ΡΡΡΡΡ ΠΊΡΡΠΊΠ°ΠΌΠΈ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°; ΡΠ°Π·ΠΌΠ΅Ρ Π±ΡΡΠ΅ΡΠ° Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΡΠΈΡΡΠΈΠΊΠΈ, ΠΏΡΡΠ°ΡΡΠ΅ΠΉΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Β«ΡΠ°Π·ΠΌΠ΅Ρ Π±Π»ΠΎΠΊΠ°Β» Π½ΠΈΠΆΠ΅Π»Π΅ΠΆΠ°ΡΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡ ΠΊ io.DEFAULT_BUFFER_SIZE. ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΡΡΠ΅ΡΠ° ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 4096 ΠΈΠ»ΠΈ 8192 Π±Π°ΠΉΡΠ°.
Β«ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅Β» ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ (ΡΠ°ΠΉΠ»Ρ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ True
) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ ΡΡΡΠΎΠΊ. ΠΡΡΠ³ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π²ΡΡΠ΅ Π΄Π»Ρ Π΄Π²ΠΎΠΈΡΠ½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ².
encoding - ΡΡΠΎ ΠΈΠΌΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π΄Π»Ρ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°. ΠΡΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ (Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ locale.getpreferredencoding ()), Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΡΠ΅ΠΊΡΡΠ°, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Python. Π‘ΠΌ. ΠΌΠΎΠ΄ΡΠ»Ρ codecs Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΎΠΊ.
errors - ΡΡΠΎ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ°, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ°Ρ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ - ΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΠΎΡΡΡΠΏΠ½Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ (ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊΒ»), Ρ ΠΎΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΈΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ, Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ codecs.register_error (), ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌ. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ:
'strict'
, ΡΡΠΎΠ±Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ValueError Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ None
ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΡ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡ
'ignore'
ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ Π΄Π°Π½Π½ΡΡ
'replace'
Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π²ΡΡΠ°Π²ΠΊΡ ΠΌΠ°ΡΠΊΠ΅ΡΠ° Π·Π°ΠΌΠ΅Π½Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, '?'
) ΡΠ°ΠΌ, Π³Π΄Π΅ Π΅ΡΡΡ ΠΈΡΠΊΠ°ΠΆΠ΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅
'surrogateescape'
Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π»ΡΠ±ΡΠ΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ Π±Π°ΠΉΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ΠΎΠ²ΡΠ΅ ΡΠΎΡΠΊΠΈ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ°ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Unicode Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ U+DC80 Π΄ΠΎ U+DCFF. ΠΡΠΈ ΡΠ°ΡΡΠ½ΡΠ΅ ΠΊΠΎΠ΄ΠΎΠ²ΡΠ΅ ΡΠΎΡΠΊΠΈ Π·Π°ΡΠ΅ΠΌ Π±ΡΠ΄ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΡΠ΅ ΠΆΠ΅ Π±Π°ΠΉΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π΄Π°Π½Π½ΡΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΡΠΈΠ±ΠΎΠΊ surrogateescape
. ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² Π² Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅
'xmlcharrefreplace'
ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°ΠΉΠ». Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΎΠΉ, Π·Π°ΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ» XML &#nnn;
'backslashreplace'
Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΡΠΊΠ°ΠΆΠ΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΠΌΠΈ Python Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΊΠΎΡΠΎΠΉ ΡΠ΅ΡΡΠΎΠΉ
'namereplace'
(ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ) Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ Π½Π΅ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΠΌΠΈ \N{...}
newline ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌΡ ΡΠ΅ΠΆΠΈΠΌΡ). ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ None
, ''
, '\n'
, '\r'
ΠΈ '\r\n'
. ΠΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ Π²Π²ΠΎΠ΄Π° ΠΈΠ· ΠΏΠΎΡΠΎΠΊΠ°, Π΅ΡΠ»ΠΈ newline ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ None
, Π²ΠΊΠ»ΡΡΠ΅Π½ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Π‘ΡΡΠΎΠΊΠΈ Π²ΠΎ Π²Ρ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
ΠΌΠΎΠ³ΡΡ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ Π½Π° '\n'
, '\r'
ΠΈΠ»ΠΈ '\r\n'
, ΠΈ ΠΎΠ½ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡΡΡ Π² '\n'
ΠΏΠ΅ΡΠ΅Π΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠΌ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Π΅. ΠΡΠ»ΠΈ ΡΡΠΎ ''
, Π²ΠΊΠ»ΡΡΠ΅Π½ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π½ΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΡΡΠΎΠΊ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Π΅ Π² Π½Π΅ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅. ΠΡΠ»ΠΈ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ Π»ΡΠ±ΠΎΠ΅ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ
Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΡΡΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π° Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ, Π° ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Π΅ Π² Π½Π΅ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅
ΠΡΠ»ΠΈ closefd ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ False
ΠΈ Π±ΡΠ» Π·Π°Π΄Π°Π½ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ°ΠΉΠ»Π°, Π° Π½Π΅ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°, Π±Π°Π·ΠΎΠ²ΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ°ΠΉΠ»Π° Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ ΠΎΡΠΊΡΡΡΡΠΌ ΠΏΡΠΈ Π·Π°ΠΊΡΡΡΠΈΠΈ ΡΠ°ΠΉΠ»Π°. ΠΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°, closefd Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ True
(ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ), Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°.
ΠΠ½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ.
ΠΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ Π°ΡΠ΄ΠΈΡΠ° open
Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ file
, mode
, flags
.
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ mode
ΠΈ flags
ΠΌΠΎΠ³Π»ΠΈ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ ΠΈΠ»ΠΈ Π²ΡΠ²Π΅Π΄Π΅Π½Ρ ΠΈΠ· ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² Π²Π΅ΡΡΠΈΠΈ 3.3:
Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ opener
Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ 'x'
ΡΠ°Π½ΡΡΠ΅ Π²ΡΠ·ΡΠ²Π°Π»Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠ° IOError, ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠΎ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ OSError
FileExistsError ΡΠ΅ΠΏΠ΅ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ», ΠΎΡΠΊΡΡΡΡΠΉ Π² ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ('x'
), ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² Π²Π΅ΡΡΠΈΠΈ 3.4:
ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°ΠΉΠ» Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ
Π£ΡΡΠ°ΡΠ΅Π»ΠΎ Ρ Π²Π΅ΡΡΠΈΠΈ 3.4, Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΎ Π² Π²Π΅ΡΡΠΈΠΈ 3.9: ΡΠ΅ΠΆΠΈΠΌ 'U'
.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² Π²Π΅ΡΡΠΈΠΈ 3.5:
Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΡΠΈΠ±ΠΎΠΊ 'namereplace'
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² Π²Π΅ΡΡΠΈΠΈ 3.6:
ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π² ΠΏΠΎΡΠΎΠΊ, Π΅ΡΠ»ΠΈ newline ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ None
, Π»ΡΠ±ΡΠ΅ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ '\n'
ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΡΡΠΎΠΊ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, . ΠΡΠ»ΠΈ newline - ''
ΠΈΠ»ΠΈ '\n'
, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ. ΠΡΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» newline ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΡΠ±ΡΠΌ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ
Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π»ΡΠ±ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ '\n'
ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡΡΡ Π² Π΄Π°Π½Π½ΡΡ ΡΡΡΠΎΠΊΡ
ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΎΡΠΊΡΡΠ²Π°ΡΠ΅Π»Ρ, ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ opener. ΠΠ°Π·ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Π° opener Ρ (file, flags). opener Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° (ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ opener ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ None
).
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ dir_fd ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π°, ΠΎΡΠ½ΠΎΡΡΡΠ΅Π³ΠΎΡΡ ΠΊ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ:
Π’ΠΈΠΏ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ open (), Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ΅ΠΆΠΈΠΌΠ°. ΠΠΎΠ³Π΄Π° open () ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π° Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ('w', 'r', 'wt', 'rt' ΠΈ Ρ. Π΄.), ΠΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ (Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ). ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π° Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Ρ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠΌ . Π’ΠΎΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Π²Π°ΡΡΠΈΡΡΠ΅ΡΡΡ: Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΡΠ΅Π½ΠΈΡ ΠΎΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ; Π² Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΎΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ , Π° Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΡΠ΅Π½ΠΈΡ/Π·Π°ΠΏΠΈΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ . ΠΠΎΠ³Π΄Π° Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π°, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ, ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ , .
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ , (Π³Π΄Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ open ()), , , ΠΈ .
Π΅ΡΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΏΡΠ΅ΡΡΠ²Π°Π΅ΡΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΈΠ³Π½Π°Π»Π° Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ InterruptedError (ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΡΠΌ. Π² ).
Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΡ
Π² Windows ΠΎΡΠΊΡΡΡΠΈΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π²Π΅ΡΠ½ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ , ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΎΡ