Python 3 - Файловый ввод-вывод
В этой главе рассматриваются все основные функции ввода-вывода, доступные в Python 3. Дополнительные функции см. В стандартной документации Python.
Печать на экран
Самый простой способ произвести вывод - использовать оператор печати, в котором вы можете передать ноль или более выражений, разделенных запятыми. Эта функция преобразует передаваемые вами выражения в строку и записывает результат в стандартный вывод следующим образом:
#!/usr/bin/python3
print ("Python is really a great language,", "isn't it?")
Это дает следующий результат на вашем стандартном экране -
Python is really a great language, isn't it?
Чтение ввода с клавиатуры
Python 2 имеет две встроенные функции для чтения данных со стандартного ввода, который по умолчанию поступает с клавиатуры. Эти функцииinput() и raw_input()
В Python 3 функция raw_input () устарела. Более того, функции input () считывают данные с клавиатуры как строку, независимо от того, заключены ли они в кавычки ('' или "") или нет.
Функция ввода
В input([prompt]) Функция эквивалентна raw_input, за исключением того, что она предполагает, что ввод является допустимым выражением Python, и возвращает вам результат оценки.
#!/usr/bin/python3
>>> x = input("something:")
something:10
>>> x
'10'
>>> x = input("something:")
something:'10' #entered data treated as string with or without ''
>>> x
"'10'"
Открытие и закрытие файлов
До сих пор вы читали и записывали в стандартный ввод и вывод. Теперь мы увидим, как использовать фактические файлы данных.
Python предоставляет базовые функции и методы, необходимые для управления файлами по умолчанию. Вы можете выполнять большую часть операций с файлами, используяfile объект.
Открытая функция
Прежде чем вы сможете прочитать или записать файл, вы должны открыть его с помощью встроенной функции Python open (). Эта функция создаетfile объект, который будет использоваться для вызова других связанных с ним методов поддержки.
Синтаксис
file object = open(file_name [, access_mode][, buffering])
Вот подробности о параметрах -
file_name - Аргумент имя_файла - это строковое значение, содержащее имя файла, к которому вы хотите получить доступ.
access_mode- Access_mode определяет режим, в котором файл должен быть открыт, то есть чтение, запись, добавление и т. Д. Полный список возможных значений приведен ниже в таблице. Это необязательный параметр, и режим доступа к файлу по умолчанию - чтение (r).
buffering- Если значение буферизации установлено на 0, буферизация не выполняется. Если значение буферизации равно 1, буферизация строки выполняется при доступе к файлу. Если вы задаете значение буферизации как целое число больше 1, то действие буферизации выполняется с указанным размером буфера. В случае отрицательного значения размер буфера является системным по умолчанию (поведение по умолчанию).
Вот список различных режимов открытия файла -
Sr.No. | Режим и описание |
---|---|
1 | r Открывает файл только для чтения. Указатель файла помещается в начало файла. Это режим "по умолчанию". |
2 | rb Открывает файл для чтения только в двоичном формате. Указатель файла помещается в начало файла. Это режим "по умолчанию". |
3 | r+ Открывает файл для чтения и записи. Указатель файла помещается в начало файла. |
4 | rb+ Открывает файл в двоичном формате для чтения и записи. Указатель файла помещается в начало файла. |
5 | w Открывает файл только для записи. Заменяет файл, если он существует. Если файл не существует, создает новый файл для записи. |
6 | wb Открывает файл для записи только в двоичном формате. Заменяет файл, если он существует. Если файл не существует, создает новый файл для записи. |
7 | w+ Открывает файл для записи и чтения. Заменяет существующий файл, если он существует. Если файл не существует, создает новый файл для чтения и записи. |
8 | wb+ Открывает файл в двоичном формате для записи и чтения. Заменяет существующий файл, если он существует. Если файл не существует, создает новый файл для чтения и записи. |
9 | a Открывает файл для добавления. Указатель файла находится в конце файла, если файл существует. То есть файл находится в режиме добавления. Если файл не существует, создается новый файл для записи. |
10 | ab Открывает файл для добавления в двоичном формате. Указатель файла находится в конце файла, если файл существует. То есть файл находится в режиме добавления. Если файл не существует, создается новый файл для записи. |
11 | a+ Открывает файл как для добавления, так и для чтения. Указатель файла находится в конце файла, если файл существует. Файл открывается в режиме добавления. Если файл не существует, создается новый файл для чтения и записи. |
12 | ab+ Открывает файл в двоичном формате для добавления и чтения. Указатель файла находится в конце файла, если файл существует. Файл открывается в режиме добавления. Если файл не существует, создается новый файл для чтения и записи. |
Атрибуты объекта файла
Когда файл открыт и у вас есть один файловый объект, вы можете получить различную информацию, связанную с этим файлом.
Вот список всех атрибутов, связанных с файловым объектом -
Sr.No. | Атрибут и описание |
---|---|
1 | file.closed Возвращает true, если файл закрыт, иначе false. |
2 | file.mode Возвращает режим доступа, в котором был открыт файл. |
3 | file.name Возвращает имя файла. |
Note - атрибут softspace не поддерживается в Python 3.x
пример
#!/usr/bin/python3
# Open a file
fo = open("foo.txt", "wb")
print ("Name of the file: ", fo.name)
print ("Closed or not : ", fo.closed)
print ("Opening mode : ", fo.mode)
fo.close()
Это дает следующий результат -
Name of the file: foo.txt
Closed or not : False
Opening mode : wb
Метод close ()
Метод close () файлового объекта сбрасывает всю незаписанную информацию и закрывает файловый объект, после чего запись невозможна.
Python автоматически закрывает файл, когда объект ссылки файла переназначается другому файлу. Для закрытия файла рекомендуется использовать метод close ().
Синтаксис
fileObject.close();
пример
#!/usr/bin/python3
# Open a file
fo = open("foo.txt", "wb")
print ("Name of the file: ", fo.name)
# Close opened file
fo.close()
Это дает следующий результат -
Name of the file: foo.txt
Чтение и запись файлов
Файловый объект предоставляет набор методов доступа, облегчающих нашу жизнь. Мы бы увидели, как использоватьread() и write() методы чтения и записи файлов.
Метод write ()
В write()записывает любую строку в открытый файл. Важно отметить, что строки Python могут содержать двоичные данные, а не только текст.
Метод write () не добавляет символ новой строки ('\ n') в конец строки -
Синтаксис
fileObject.write(string);
Здесь переданный параметр - это содержимое, которое будет записано в открытый файл.
пример
#!/usr/bin/python3
# Open a file
fo = open("foo.txt", "w")
fo.write( "Python is a great language.\nYeah its great!!\n")
# Close opend file
fo.close()
Вышеупомянутый метод создаст файл foo.txt и запишет заданный контент в этот файл и, наконец, закроет этот файл. Если вы откроете этот файл, он будет иметь следующий контент -
Python is a great language.
Yeah its great!!
Метод read ()
В read()Метод читает строку из открытого файла. Важно отметить, что строки Python могут содержать двоичные данные. кроме текстовых данных.
Синтаксис
fileObject.read([count]);
Здесь переданный параметр - это количество байтов, которое нужно прочитать из открытого файла. Этот метод начинает чтение с начала файла, и если счетчик отсутствует, он пытается прочитать как можно больше, возможно, до конца файла.
пример
Возьмем файл foo.txt , который мы создали выше.
#!/usr/bin/python3
# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10)
print ("Read String is : ", str)
# Close opened file
fo.close()
Это дает следующий результат -
Read String is : Python is
Расположение файлов
Метод tell () сообщает вам текущую позицию в файле; другими словами, следующее чтение или запись произойдет через столько байтов от начала файла.
Метод seek (offset [, from]) изменяет текущую позицию файла. Вoffsetаргумент указывает количество байтов, которые нужно переместить. Вfrom Аргумент указывает ссылочную позицию, из которой должны быть перемещены байты.
Если from установлено в 0, начало файла используется в качестве позиции ссылки. Если он установлен на 1, текущая позиция используется как исходная позиция. Если он установлен на 2, то конец файла будет взят за позицию ссылки.
пример
Возьмем файл foo.txt , который мы создали выше.
#!/usr/bin/python3
# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10)
print ("Read String is : ", str)
# Check current position
position = fo.tell()
print ("Current file position : ", position)
# Reposition pointer at the beginning once again
position = fo.seek(0, 0)
str = fo.read(10)
print ("Again read String is : ", str)
# Close opened file
fo.close()
Это дает следующий результат -
Read String is : Python is
Current file position : 10
Again read String is : Python is
Переименование и удаление файлов
Python os Модуль предоставляет методы, которые помогают выполнять операции обработки файлов, такие как переименование и удаление файлов.
Чтобы использовать этот модуль, вам нужно сначала импортировать его, а затем вы можете вызывать любые связанные функции.
Метод rename ()
В rename() Метод принимает два аргумента: текущее имя файла и новое имя файла.
Синтаксис
os.rename(current_file_name, new_file_name)
пример
Ниже приведен пример переименования существующего файла test1.txt -
#!/usr/bin/python3
import os
# Rename a file from test1.txt to test2.txt
os.rename( "test1.txt", "test2.txt" )
Метод remove ()
Вы можете использовать remove() для удаления файлов, указав в качестве аргумента имя удаляемого файла.
Синтаксис
os.remove(file_name)
пример
Ниже приведен пример удаления существующего файла test2.txt -
#!/usr/bin/python3
import os
# Delete file test2.txt
os.remove("text2.txt")
Каталоги в Python
Все файлы содержатся в разных каталогах, и Python тоже без проблем справляется с ними. Вos В модуле есть несколько методов, которые помогут вам создавать, удалять и изменять каталоги.
Метод mkdir ()
Вы можете использовать mkdir() метод osмодуль для создания каталогов в текущем каталоге. Вам необходимо предоставить аргумент этому методу, который содержит имя создаваемого каталога.
Синтаксис
os.mkdir("newdir")
пример
Ниже приведен пример создания каталога test в текущем каталоге.
#!/usr/bin/python3
import os
# Create a directory "test"
os.mkdir("test")
Метод chdir ()
Вы можете использовать метод chdir () для изменения текущего каталога. Метод chdir () принимает аргумент, который представляет собой имя каталога, который вы хотите сделать текущим каталогом.
Синтаксис
os.chdir("newdir")
пример
Ниже приведен пример перехода в каталог "/ home / newdir" -
#!/usr/bin/python3
import os
# Changing a directory to "/home/newdir"
os.chdir("/home/newdir")
Метод getcwd ()
В getcwd() отображает текущий рабочий каталог.
Синтаксис
os.getcwd()
пример
Ниже приведен пример текущего каталога -
#!/usr/bin/python3
import os
# This would give location of the current directory
os.getcwd()
Метод rmdir ()
В rmdir() Метод удаляет каталог, который передается в качестве аргумента в методе.
Перед удалением каталога необходимо удалить все его содержимое.
Синтаксис
os.rmdir('dirname')
пример
Ниже приведен пример удаления каталога «/ tmp / test». Требуется указать полное имя каталога, иначе он будет искать этот каталог в текущем каталоге.
#!/usr/bin/python3
import os
# This would remove "/tmp/test" directory.
os.rmdir( "/tmp/test" )
Методы, связанные с файлами и каталогами
Есть три важных источника, которые предоставляют широкий спектр служебных методов для обработки и управления файлами и каталогами в операционных системах Windows и Unix. Они следующие -
Методы файлового объекта
В file Объект предоставляет функции для управления файлами.
Методы объектов ОС
Это предоставляет методы для обработки файлов, а также каталогов.