# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2001-2017, Python Software Foundation
# This file is distributed under the same license as the Python package.
# FIRST AUTHOR , 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: Python 3.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-12 08:36+0900\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Dong-gweon Oh \n"
"Language-Team: Korean (https://python.flowdas.com)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.7.0\n"
#: ../Doc/tutorial/inputoutput.rst:5
msgid "Input and Output"
msgstr " "
#: ../Doc/tutorial/inputoutput.rst:7
msgid ""
"There are several ways to present the output of a program; data can be "
"printed in a human-readable form, or written to a file for future use. "
"This chapter will discuss some of the possibilities."
msgstr ""
" ; , "
" . ."
#: ../Doc/tutorial/inputoutput.rst:15
msgid "Fancier Output Formatting"
msgstr " "
#: ../Doc/tutorial/inputoutput.rst:17
msgid ""
"So far we've encountered two ways of writing values: *expression "
"statements* and the :func:`print` function. (A third way is using the "
":meth:`write` method of file objects; the standard output file can be "
"referenced as ``sys.stdout``. See the Library Reference for more "
"information on this.)"
msgstr ""
" : * * :func:`print` . ( "
" :meth:`write` ; ``sys.stdout`` "
". .)"
#: ../Doc/tutorial/inputoutput.rst:22
msgid ""
"Often you'll want more control over the formatting of your output than "
"simply printing space-separated values. There are several ways to format "
"output."
msgstr ""
" . "
" ."
#: ../Doc/tutorial/inputoutput.rst:25
msgid ""
"To use :ref:`formatted string literals `, begin a string "
"with ``f`` or ``F`` before the opening quotation mark or triple quotation"
" mark. Inside this string, you can write a Python expression between "
"``{`` and ``}`` characters that can refer to variables or literal values."
msgstr ""
":ref:` `\\ , ``f``"
" ``F`` . , ``{`` ``}`` , "
" ."
#: ../Doc/tutorial/inputoutput.rst:37
msgid ""
"The :meth:`str.format` method of strings requires more manual effort. "
"You'll still use ``{`` and ``}`` to mark where a variable will be "
"substituted and can provide detailed formatting directives, but you'll "
"also need to provide the information to be formatted."
msgstr ""
" :meth:`str.format` . ``{`` "
" ``}``\\ , , ."
#: ../Doc/tutorial/inputoutput.rst:50
msgid ""
"Finally, you can do all the string handling yourself by using string "
"slicing and concatenation operations to create any layout you can "
"imagine. The string type has some methods that perform useful operations"
" for padding strings to a given column width."
msgstr ""
", , "
" . ."
#: ../Doc/tutorial/inputoutput.rst:55
msgid ""
"When you don't need fancy output but just want a quick display of some "
"variables for debugging purposes, you can convert any value to a string "
"with the :func:`repr` or :func:`str` functions."
msgstr ""
" , :func:`repr` :func:`str`"
" ."
#: ../Doc/tutorial/inputoutput.rst:59
msgid ""
"The :func:`str` function is meant to return representations of values "
"which are fairly human-readable, while :func:`repr` is meant to generate "
"representations which can be read by the interpreter (or will force a "
":exc:`SyntaxError` if there is no equivalent syntax). For objects which "
"don't have a particular representation for human consumption, :func:`str`"
" will return the same value as :func:`repr`. Many values, such as "
"numbers or structures like lists and dictionaries, have the same "
"representation using either function. Strings, in particular, have two "
"distinct representations."
msgstr ""
":func:`str` . "
":func:`repr` ( "
":exc:`SyntaxError` ). , "
":func:`str` :func:`repr` . , , "
" . , ."
#: ../Doc/tutorial/inputoutput.rst:68
msgid "Some examples::"
msgstr " ::"
#: ../Doc/tutorial/inputoutput.rst:91
msgid ""
"The :mod:`string` module contains a :class:`~string.Template` class that "
"offers yet another way to substitute values into strings, using "
"placeholders like ``$x`` and replacing them with values from a "
"dictionary, but offers much less control of the formatting."
msgstr ""
":mod:`string` :class:`~string.Template` "
" . ``$x``\\ , "
" ."
#: ../Doc/tutorial/inputoutput.rst:100
msgid "Formatted String Literals"
msgstr " "
#: ../Doc/tutorial/inputoutput.rst:102
msgid ""
":ref:`Formatted string literals ` (also called f-strings for "
"short) let you include the value of Python expressions inside a string by"
" prefixing the string with ``f`` or ``F`` and writing expressions as "
"``{expression}``."
msgstr ""
":ref:` `\\( f- ) ``f`` ``F`` "
" ``{expression}``\\ ."
#: ../Doc/tutorial/inputoutput.rst:107
msgid ""
"An optional format specifier can follow the expression. This allows "
"greater control over how the value is formatted. The following example "
"rounds pi to three places after the decimal::"
msgstr ""
" . . "
" ."
#: ../Doc/tutorial/inputoutput.rst:115
msgid ""
"Passing an integer after the ``':'`` will cause that field to be a "
"minimum number of characters wide. This is useful for making columns "
"line up. ::"
msgstr "``':'`` . . ::"
#: ../Doc/tutorial/inputoutput.rst:126
msgid ""
"Other modifiers can be used to convert the value before it is formatted. "
"``'!a'`` applies :func:`ascii`, ``'!s'`` applies :func:`str`, and "
"``'!r'`` applies :func:`repr`::"
msgstr ""
" . ``'!a'``\\ :func:`ascii`\\, "
"``'!s'``\\ :func:`str`\\, ``'!r'``\\ :func:`repr`\\ .::"
#: ../Doc/tutorial/inputoutput.rst:136
msgid ""
"For a reference on these format specifications, see the reference guide "
"for the :ref:`formatspec`."
msgstr " :ref:`formatspec`\\ ."
#: ../Doc/tutorial/inputoutput.rst:142
msgid "The String format() Method"
msgstr " format() "
#: ../Doc/tutorial/inputoutput.rst:144
msgid "Basic usage of the :meth:`str.format` method looks like this::"
msgstr ":meth:`str.format` ::"
#: ../Doc/tutorial/inputoutput.rst:149
msgid ""
"The brackets and characters within them (called format fields) are "
"replaced with the objects passed into the :meth:`str.format` method. A "
"number in the brackets can be used to refer to the position of the object"
" passed into the :meth:`str.format` method. ::"
msgstr ""
" ( ) :meth:`str.format` . "
" :meth:`str.format` . ::"
#: ../Doc/tutorial/inputoutput.rst:159
msgid ""
"If keyword arguments are used in the :meth:`str.format` method, their "
"values are referred to by using the name of the argument. ::"
msgstr ":meth:`str.format` , . ::"
#: ../Doc/tutorial/inputoutput.rst:166
msgid "Positional and keyword arguments can be arbitrarily combined::"
msgstr " ::"
#: ../Doc/tutorial/inputoutput.rst:172
msgid ""
"If you have a really long format string that you don't want to split up, "
"it would be nice if you could reference the variables to be formatted by "
"name instead of by position. This can be done by simply passing the dict"
" and using square brackets ``'[]'`` to access the keys. ::"
msgstr ""
" , . "
" ``'[]'`` . ::"
#: ../Doc/tutorial/inputoutput.rst:182
msgid ""
"This could also be done by passing the table as keyword arguments with "
"the '**' notation. ::"
msgstr "'**' table . ::"
#: ../Doc/tutorial/inputoutput.rst:189
msgid ""
"This is particularly useful in combination with the built-in function "
":func:`vars`, which returns a dictionary containing all local variables."
msgstr " :func:`vars` . "
#: ../Doc/tutorial/inputoutput.rst:192
msgid ""
"As an example, the following lines produce a tidily-aligned set of "
"columns giving integers and their squares and cubes::"
msgstr " , ::"
#: ../Doc/tutorial/inputoutput.rst:209
msgid ""
"For a complete overview of string formatting with :meth:`str.format`, see"
" :ref:`formatstrings`."
msgstr ":meth:`str.format` :ref:`formatstrings` ."
#: ../Doc/tutorial/inputoutput.rst:214
msgid "Manual String Formatting"
msgstr " "
#: ../Doc/tutorial/inputoutput.rst:216
msgid "Here's the same table of squares and cubes, formatted manually::"
msgstr " ::"
#: ../Doc/tutorial/inputoutput.rst:234
msgid ""
"(Note that the one space between each column was added by the way "
":func:`print` works: it always adds spaces between its arguments.)"
msgstr ""
"(:func:`print` : "
" .)"
#: ../Doc/tutorial/inputoutput.rst:237
msgid ""
"The :meth:`str.rjust` method of string objects right-justifies a string "
"in a field of a given width by padding it with spaces on the left. There "
"are similar methods :meth:`str.ljust` and :meth:`str.center`. These "
"methods do not write anything, they just return a new string. If the "
"input string is too long, they don't truncate it, but return it "
"unchanged; this will mess up your column lay-out but that's usually "
"better than the alternative, which would be lying about a value. (If you "
"really want truncation you can always add a slice operation, as in "
"``x.ljust(n)[:n]``.)"
msgstr ""
" :meth:`str.rjust` . "
" :meth:`str.ljust` :meth:`str.center` . "
", . , , ; "
" , . ( , "
" , ``x.ljust(n)[:n]`` .)"
#: ../Doc/tutorial/inputoutput.rst:246
msgid ""
"There is another method, :meth:`str.zfill`, which pads a numeric string "
"on the left with zeros. It understands about plus and minus signs::"
msgstr ""
" , :meth:`str.zfill`. 0 . "
":: "
#: ../Doc/tutorial/inputoutput.rst:258
msgid "Old string formatting"
msgstr " "
#: ../Doc/tutorial/inputoutput.rst:260
#, python-format
msgid ""
"The % operator (modulo) can also be used for string formatting. Given "
"``'string' % values``, instances of ``%`` in ``string`` are replaced with"
" zero or more elements of ``values``. This operation is commonly known as"
" string interpolation. For example::"
msgstr ""
"% () . ``'string' % values``\\ , "
"``string``\\ ``%`` 0 ``values`` . "
"(interpolation) . ::"
#: ../Doc/tutorial/inputoutput.rst:269
msgid "More information can be found in the :ref:`old-string-formatting` section."
msgstr " :ref:`old-string-formatting` ."
#: ../Doc/tutorial/inputoutput.rst:275
msgid "Reading and Writing Files"
msgstr " "
#: ../Doc/tutorial/inputoutput.rst:281
msgid ""
":func:`open` returns a :term:`file object`, and is most commonly used "
"with two arguments: ``open(filename, mode)``."
msgstr ""
":func:`open` :term:` ` , "
": ``open(filename, mode)``."
#: ../Doc/tutorial/inputoutput.rst:293
msgid ""
"The first argument is a string containing the filename. The second "
"argument is another string containing a few characters describing the way"
" in which the file will be used. *mode* can be ``'r'`` when the file "
"will only be read, ``'w'`` for only writing (an existing file with the "
"same name will be erased), and ``'a'`` opens the file for appending; any "
"data written to the file is 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 omitted."
msgstr ""
" . "
". *mode* ``'r'``, ``'w'`` ( "
") , ``'a'`` ; . "
"``'r+'`` . *mode* , ``'r'`` ."
#: ../Doc/tutorial/inputoutput.rst:302
msgid ""
"Normally, files are opened in :dfn:`text mode`, that means, you read and "
"write strings from and to the file, which are encoded in a specific "
"encoding. If encoding is not specified, the default is platform dependent"
" (see :func:`open`). ``'b'`` appended to the mode opens the file in "
":dfn:`binary mode`: now the data is read and written in the form of bytes"
" objects. This mode should be used for all files that don't contain "
"text."
msgstr ""
", :dfn:` (text mode)` , , , "
" . (:func:`open` ). "
"mode ``'b'`` :dfn:` (binary mode)` : "
" . ."
#: ../Doc/tutorial/inputoutput.rst:309
msgid ""
"In text mode, the default when reading is to convert platform-specific "
"line endings (``\\n`` on Unix, ``\\r\\n`` on Windows) to just ``\\n``. "
"When writing in text mode, the default is to convert occurrences of "
"``\\n`` back to platform-specific line endings. 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."
msgstr ""
" , ( ``\\n``, ``\\r\\n``) "
" ``\\n`` . , ``\\n`` "
" . , :file:`JPEG` "
":file:`EXE` . ."
#: ../Doc/tutorial/inputoutput.rst:317
msgid ""
"It is good practice to use the :keyword:`with` keyword when dealing with "
"file objects. The advantage is that the file is properly closed after "
"its suite finishes, even if an exception is raised at some point. Using "
":keyword:`!with` is also much shorter than writing equivalent "
":keyword:`try`\\ -\\ :keyword:`finally` blocks::"
msgstr ""
" :keyword:`with` . "
" . :keyword:`!with` "
":keyword:`try`\\ -\\ :keyword:`finally` ::"
#: ../Doc/tutorial/inputoutput.rst:330
msgid ""
"If you're not using the :keyword:`with` keyword, then you should call "
"``f.close()`` to close the file and immediately free up any system "
"resources used by it."
msgstr ""
":keyword:`with` , ``f.close()`` "
" ."
#: ../Doc/tutorial/inputoutput.rst:335
msgid ""
"Calling ``f.write()`` without using the :keyword:`!with` keyword or "
"calling ``f.close()`` **might** result in the arguments of ``f.write()`` "
"not being completely written to the disk, even if the program exits "
"successfully."
msgstr ""
":keyword:`!with` ``f.close()``\\ ``f.write()``\\ "
" ``f.write()``\\ **** ."
#: ../Doc/tutorial/inputoutput.rst:343
msgid ""
"After a file object is closed, either by a :keyword:`with` statement or "
"by calling ``f.close()``, attempts to use the file object will "
"automatically fail. ::"
msgstr ""
" , :keyword:`with` ``f.close()`` , "
" . ::"
#: ../Doc/tutorial/inputoutput.rst:357
msgid "Methods of File Objects"
msgstr " "
#: ../Doc/tutorial/inputoutput.rst:359
msgid ""
"The rest of the examples in this section will assume that a file object "
"called ``f`` has already been created."
msgstr " ``f`` ."
#: ../Doc/tutorial/inputoutput.rst:362
msgid ""
"To read a file's contents, call ``f.read(size)``, which reads some "
"quantity of data and returns it as a string (in text mode) or bytes "
"object (in binary mode). *size* is an optional numeric argument. When "
"*size* is omitted or negative, the entire contents of the file will be "
"read and returned; it's your problem if the file is twice as large as "
"your machine's memory. Otherwise, at most *size* characters (in text "
"mode) or *size* bytes (in binary mode) are read and returned. If the end "
"of the file has been reached, ``f.read()`` will return an empty string "
"(``''``). ::"
msgstr ""
" , ``f.read(size)`` , ( ) "
" ( ) . *size* . *size* "
" ; . "
"*size* ( ) *size* ( ) . , "
"``f.read()`` (``''``) . ::"
#: ../Doc/tutorial/inputoutput.rst:376
msgid ""
"``f.readline()`` reads a single line from the file; a newline character "
"(``\\n``) is left at the end of the string, and is only omitted on the "
"last line of the file if the file doesn't end in a newline. This makes "
"the return value unambiguous; if ``f.readline()`` returns an empty "
"string, the end of the file has been reached, while a blank line is "
"represented by ``'\\n'``, a string containing only a single newline. ::"
msgstr ""
"``f.readline()`` ; (``\\n``) , "
" . ; "
"``f.readline()`` , , ``'\\n'``, "
" . ::"
#: ../Doc/tutorial/inputoutput.rst:390
msgid ""
"For reading lines from a file, you can loop over the file object. This is"
" memory efficient, fast, and leads to simple code::"
msgstr " , . , ::"
#: ../Doc/tutorial/inputoutput.rst:399
msgid ""
"If you want to read all the lines of a file in a list you can also use "
"``list(f)`` or ``f.readlines()``."
msgstr " ``list(f)`` ``f.readlines()`` ."
#: ../Doc/tutorial/inputoutput.rst:402
msgid ""
"``f.write(string)`` writes the contents of *string* to the file, "
"returning the number of characters written. ::"
msgstr "``f.write(string)`` *string* , ."
#: ../Doc/tutorial/inputoutput.rst:408
msgid ""
"Other types of objects need to be converted -- either to a string (in "
"text mode) or a bytes object (in binary mode) -- before writing them::"
msgstr ""
" -- ( ) ( ) "
"--::"
#: ../Doc/tutorial/inputoutput.rst:416
msgid ""
"``f.tell()`` returns an integer giving the file object's current position"
" in the file represented as number of bytes from the beginning of the "
"file when in binary mode and an opaque number when in text mode."
msgstr ""
"``f.tell()`` , "
" ."
#: ../Doc/tutorial/inputoutput.rst:420
msgid ""
"To change the file object's position, use ``f.seek(offset, whence)``. "
"The position is computed from adding *offset* to a reference point; the "
"reference point is selected by the *whence* argument. A *whence* value "
"of 0 measures from the beginning of the file, 1 uses the current file "
"position, and 2 uses the end of the file as the reference point. "
"*whence* can be omitted and defaults to 0, using the beginning of the "
"file as the reference point. ::"
msgstr ""
" , ``f.seek(offset, whence)`` . *offset* "
" ; *whence* . *whence* 0 , 1 "
" , 2 . *whence* , 0 "
" . ::"
#: ../Doc/tutorial/inputoutput.rst:439
msgid ""
"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)``) and the only "
"valid *offset* values are those returned from the ``f.tell()``, or zero. "
"Any other *offset* value produces undefined behaviour."
msgstr ""
" ( ``b`` ), ( "
"``seek(0, 2)`` ), *offset* "
"``f.tell()`` 0. *offset* ."
#: ../Doc/tutorial/inputoutput.rst:445
msgid ""
"File objects have some additional methods, such as :meth:`~file.isatty` "
"and :meth:`~file.truncate` which are less frequently used; consult the "
"Library Reference for a complete guide to file objects."
msgstr ""
" :meth:`~file.isatty` :meth:`~file.truncate` "
", ; ."
#: ../Doc/tutorial/inputoutput.rst:453
msgid "Saving structured data with :mod:`json`"
msgstr ":mod:`json` "
#: ../Doc/tutorial/inputoutput.rst:457
msgid ""
"Strings can easily be written to and read from a file. Numbers take a "
"bit more effort, since the :meth:`read` method only returns strings, "
"which will have to be passed to a function like :func:`int`, which takes "
"a string like ``'123'`` and returns its numeric value 123. When you want"
" to save more complex data types like nested lists and dictionaries, "
"parsing and serializing by hand becomes complicated."
msgstr ""
" . , :meth:`read` "
" . :func:`int` , ``'123'`` "
"123 . , "
" ."
#: ../Doc/tutorial/inputoutput.rst:464
msgid ""
"Rather than having users constantly writing and debugging code to save "
"complicated data types to files, Python allows you to use the popular "
"data interchange format called `JSON (JavaScript Object Notation) "
"`_. The standard module called :mod:`json` can take "
"Python data hierarchies, and convert them to string representations; this"
" process is called :dfn:`serializing`. Reconstructing the data from the "
"string representation is called :dfn:`deserializing`. Between "
"serializing and deserializing, the string representing the object may "
"have been stored in a file or data, or sent over a network connection to "
"some distant machine."
msgstr ""
" , `JSON "
"(JavaScript Object Notation) `_ "
" . :mod:`json` ; "
" :dfn:` (serializing)` . :dfn:` "
" (deserializing)` . , "
" ."
#: ../Doc/tutorial/inputoutput.rst:475
msgid ""
"The JSON format is commonly used by modern applications to allow for data"
" exchange. Many programmers are already familiar with it, which makes it"
" a good choice for interoperability."
msgstr ""
"JSON . , "
" ."
#: ../Doc/tutorial/inputoutput.rst:479
msgid ""
"If you have an object ``x``, you can view its JSON string representation "
"with a simple line of code::"
msgstr " ``x`` , JSON ::"
#: ../Doc/tutorial/inputoutput.rst:486
msgid ""
"Another variant of the :func:`~json.dumps` function, called "
":func:`~json.dump`, simply serializes the object to a :term:`text file`."
" So if ``f`` is a :term:`text file` object opened for writing, we can do"
" this::"
msgstr ""
":func:`~json.dump`\\ :func:`~json.dumps` :term:` "
"` . ``f`` :term:` ` "
", ::"
#: ../Doc/tutorial/inputoutput.rst:492
msgid ""
"To decode the object again, if ``f`` is a :term:`text file` object which "
"has been opened for reading::"
msgstr " , ``f`` :term:` ` ::"
#: ../Doc/tutorial/inputoutput.rst:497
msgid ""
"This simple serialization technique can handle lists and dictionaries, "
"but serializing arbitrary class instances in JSON requires a bit of extra"
" effort. The reference for the :mod:`json` module contains an explanation"
" of this."
msgstr ""
" , JSON "
" . :mod:`json` ."
#: ../Doc/tutorial/inputoutput.rst:503
msgid ":mod:`pickle` - the pickle module"
msgstr ":mod:`pickle` - "
#: ../Doc/tutorial/inputoutput.rst:505
msgid ""
"Contrary to :ref:`JSON `, *pickle* is a protocol which allows "
"the serialization of arbitrarily complex Python objects. As such, it is "
"specific to Python and cannot be used to communicate with applications "
"written in other languages. It is also insecure by default: "
"deserializing pickle data coming from an untrusted source can execute "
"arbitrary code, if the data was crafted by a skilled attacker."
msgstr ""
":ref:`JSON ` , *pickle* "
". . "
": , "
"."