Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
0dcb7ac7
Kaydet (Commit)
0dcb7ac7
authored
Agu 08, 2008
tarafından
Georg Brandl
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
#3524: fix up some old-style IO descriptions.
üst
f5f2630d
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
36 additions
and
25 deletions
+36
-25
inputoutput.rst
Doc/tutorial/inputoutput.rst
+36
-25
No files found.
Doc/tutorial/inputoutput.rst
Dosyayı görüntüle @
0dcb7ac7
...
@@ -228,6 +228,9 @@ arguments: ``open(filename, mode)``.
...
@@ -228,6 +228,9 @@ arguments: ``open(filename, mode)``.
::
::
>>> f = open('/tmp/workfile', 'w')
>>> f = open('/tmp/workfile', 'w')
.. XXX str(f) is <io.TextIOWrapper object at 0x82e8dc4>
>>> print(f)
>>> print(f)
<open file '/tmp/workfile', mode 'w' at 80a0960>
<open file '/tmp/workfile', mode 'w' at 80a0960>
...
@@ -240,19 +243,18 @@ automatically added to the end. ``'r+'`` opens the file for both reading and
...
@@ -240,19 +243,18 @@ automatically added to the end. ``'r+'`` opens the file for both reading and
writing. The *mode* argument is optional; ``'r'`` will be assumed if it's
writing. The *mode* argument is optional; ``'r'`` will be assumed if it's
omitted.
omitted.
On Windows and the Macintosh, ``'b'`` appended to the mode opens the file in
Normally, files are opened in :dfn:`text mode`, that means, you read and write
binary mode, so there are also modes like ``'rb'``, ``'wb'``, and ``'r+b'``.
strings from and to the file, which are encoded in a specific encoding (the
Windows makes a distinction between text and binary files; the end-of-line
default being UTF-8). ``'b'`` appended to the mode opens the file in
characters in text files are automatically altered slightly when data is read or
:dfn:`binary mode`: now the data is read and written in the form of bytes
written. This behind-the-scenes modification to file data is fine for ASCII
objects. This mode should be used for all files that don't contain text.
text files, but it'll corrupt binary data like that in :file:`JPEG` or
:file:`EXE` files. Be very careful to use binary mode when reading and writing
such files. On Unix, it doesn't hurt to append a ``'b'`` to the mode, so
you can use it platform-independently for all binary files.
This behind-the-scenes modification to file data is fine for text files, but
In text mode, the default is to convert platform-specific line endings (``\n``
will corrupt binary data like that in :file:`JPEG` or :file:`EXE` files. Be
on Unix, ``\r\n`` on Windows) to just ``\n`` on reading and ``\n`` back to
very careful to use binary mode when reading and writing such files.
platform-specific line endings on writing. This behind-the-scenes modification
to file data is fine for text files, but will corrupt binary data like that in
:file:`JPEG` or :file:`EXE` files. Be very careful to use binary mode when
reading and writing such files.
.. _tut-filemethods:
.. _tut-filemethods:
...
@@ -264,12 +266,12 @@ The rest of the examples in this section will assume that a file object called
...
@@ -264,12 +266,12 @@ The rest of the examples in this section will assume that a file object called
``f`` has already been created.
``f`` has already been created.
To read a file's contents, call ``f.read(size)``, which reads some quantity of
To read a file's contents, call ``f.read(size)``, which reads some quantity of
data and returns it as a string
. *size* is an optional numeric argument. When
data and returns it as a string
or bytes object. *size* is an optional numeric
*size* is omitted or negative, the entire contents of the file will be read and
argument. When *size* is omitted or negative, the entire contents of the file
returned; it's your problem if the file is twice as large as your machine'
s
will be read and returned; it's your problem if the file is twice as large a
s
memory. Otherwise, at most *size* bytes are read and returned. If the end of
your machine's memory. Otherwise, at most *size* bytes are read and returned.
the file has been reached, ``f.read()`` will return an empty string (``""``).
If the end of the file has been reached, ``f.read()`` will return an empty
::
string (``''``).
::
>>> f.read()
>>> f.read()
'This is the entire file.\n'
'This is the entire file.\n'
...
@@ -304,8 +306,8 @@ An alternative approach to reading lines is to loop over the file object. This i
...
@@ -304,8 +306,8 @@ An alternative approach to reading lines is to loop over the file object. This i
memory efficient, fast, and leads to simpler code::
memory efficient, fast, and leads to simpler code::
>>> for line in f:
>>> for line in f:
print(line, end='')
...
print(line, end='')
...
This is the first line of the file.
This is the first line of the file.
Second line of the file
Second line of the file
...
@@ -314,9 +316,10 @@ control. Since the two approaches manage line buffering differently, they
...
@@ -314,9 +316,10 @@ control. Since the two approaches manage line buffering differently, they
should not be mixed.
should not be mixed.
``f.write(string)`` writes the contents of *string* to the file, returning
``f.write(string)`` writes the contents of *string* to the file, returning
``None``.
::
the number of characters written.
::
>>> f.write('This is a test\n')
>>> f.write('This is a test\n')
15
To write something other than a string, it needs to be converted to a string
To write something other than a string, it needs to be converted to a string
first::
first::
...
@@ -324,6 +327,7 @@ first::
...
@@ -324,6 +327,7 @@ first::
>>> value = ('the answer', 42)
>>> value = ('the answer', 42)
>>> s = str(value)
>>> s = str(value)
>>> f.write(s)
>>> f.write(s)
18
``f.tell()`` returns an integer giving the file object's current position in the
``f.tell()`` returns an integer giving the file object's current position in the
file, measured in bytes from the beginning of the file. To change the file
file, measured in bytes from the beginning of the file. To change the file
...
@@ -334,14 +338,21 @@ of the file, 1 uses the current file position, and 2 uses the end of the file as
...
@@ -334,14 +338,21 @@ of the file, 1 uses the current file position, and 2 uses the end of the file as
the reference point. *from_what* can be omitted and defaults to 0, using the
the reference point. *from_what* can be omitted and defaults to 0, using the
beginning of the file as the reference point. ::
beginning of the file as the reference point. ::
>>> f = open('/tmp/workfile', 'r+')
>>> f = open('/tmp/workfile', 'rb+')
>>> f.write('0123456789abcdef')
>>> f.write(b'0123456789abcdef')
16
>>> f.seek(5) # Go to the 6th byte in the file
>>> f.seek(5) # Go to the 6th byte in the file
5
>>> f.read(1)
>>> f.read(1)
'5'
b
'5'
>>> f.seek(-3, 2) # Go to the 3rd byte before the end
>>> f.seek(-3, 2) # Go to the 3rd byte before the end
13
>>> f.read(1)
>>> f.read(1)
'd'
b'd'
In text files (those opened without a ``b`` in the mode string), only seeks
relative to the beginning of the file are allowed (the exception being seeking
to the very file end with ``seek(0, 2)``).
When you're done with a file, call ``f.close()`` to close it and free up any
When you're done with a file, call ``f.close()`` to close it and free up any
system resources taken up by the open file. After calling ``f.close()``,
system resources taken up by the open file. After calling ``f.close()``,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment