Учебники

Python 3 — Файлы ввода / вывода

В этой главе рассматриваются все основные функции ввода / вывода, доступные в Python 3. Дополнительные функции см. В стандартной документации Python.

Печать на экран

Простейший способ создания вывода — использовать оператор print, в котором вы можете передать ноль или более выражений, разделенных запятыми. Эта функция преобразует передаваемые выражения в строку и записывает результат в стандартный вывод следующим образом:

Live Demo

#!/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, за исключением того, что она предполагает, что 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 предоставляет основные функции и методы, необходимые для работы с файлами по умолчанию. Вы можете сделать большую часть манипуляций с файлом, используя объект файла .

Открытая функция

Прежде чем вы сможете читать или писать файл, вы должны открыть его с помощью встроенной в Python функции open (). Эта функция создает объект файла , который будет использоваться для вызова других методов поддержки, связанных с ним.

Синтаксис

file object = open(file_name [, access_mode][, buffering])

Вот детали параметров —

  • file_name — аргумент file_name представляет собой строковое значение, которое содержит имя файла, к которому вы хотите получить доступ.

  • access_mode — access_mode определяет режим, в котором файл должен быть открыт, то есть чтение, запись, добавление и т. д. Полный список возможных значений приведен ниже в таблице. Это необязательный параметр, и режим доступа к файлу по умолчанию — read (r).

  • буферизация — если значение буферизации установлено в 0, буферизация не выполняется. Если значение буферизации равно 1, буферизация строки выполняется при доступе к файлу. Если вы укажете значение буферизации как целое число больше 1, то действие буферизации будет выполнено с указанным размером буфера. Если отрицательный, размер буфера является системным значением по умолчанию (поведение по умолчанию).

file_name — аргумент file_name представляет собой строковое значение, которое содержит имя файла, к которому вы хотите получить доступ.

access_mode — access_mode определяет режим, в котором файл должен быть открыт, то есть чтение, запись, добавление и т. д. Полный список возможных значений приведен ниже в таблице. Это необязательный параметр, и режим доступа к файлу по умолчанию — read (r).

буферизация — если значение буферизации установлено в 0, буферизация не выполняется. Если значение буферизации равно 1, буферизация строки выполняется при доступе к файлу. Если вы укажете значение буферизации как целое число больше 1, то действие буферизации будет выполнено с указанным размером буфера. Если отрицательный, размер буфера является системным значением по умолчанию (поведение по умолчанию).

Вот список различных режимов открытия файла —

Sr.No. Режим и описание
1

р

Открывает файл только для чтения. Указатель файла находится в начале файла. Это режим «по умолчанию».

2

Р.Б.

Открывает файл для чтения только в двоичном формате. Указатель файла находится в начале файла. Это режим «по умолчанию».

3

г & плюс;

Открывает файл для чтения и записи. Указатель файла помещается в начале файла.

4

RB & плюс;

Открывает файл для чтения и записи в двоичном формате. Указатель файла помещается в начале файла.

5

вес

Открывает файл только для записи. Перезаписывает файл, если файл существует. Если файл не существует, создает новый файл для записи.

6

термометру

Открывает файл для записи только в двоичном формате. Перезаписывает файл, если файл существует. Если файл не существует, создает новый файл для записи.

7

ж & плюс;

Открывает файл для записи и чтения. Перезаписывает существующий файл, если файл существует. Если файл не существует, создает новый файл для чтения и записи.

8

термометр & плюс;

Открывает файл для записи и чтения в двоичном формате. Перезаписывает существующий файл, если файл существует. Если файл не существует, создает новый файл для чтения и записи.

9

Открывает файл для добавления. Указатель файла находится в конце файла, если файл существует. То есть файл находится в режиме добавления. Если файл не существует, он создает новый файл для записи.

10

аб

Открывает файл для добавления в двоичном формате. Указатель файла находится в конце файла, если файл существует. То есть файл находится в режиме добавления. Если файл не существует, он создает новый файл для записи.

11

плюс;

Открывает файл для добавления и чтения. Указатель файла находится в конце файла, если файл существует. Файл открывается в режиме добавления. Если файл не существует, он создает новый файл для чтения и записи.

12

AB & плюс;

Открывает файл для добавления и чтения в двоичном формате. Указатель файла находится в конце файла, если файл существует. Файл открывается в режиме добавления. Если файл не существует, он создает новый файл для чтения и записи.

р

Открывает файл только для чтения. Указатель файла находится в начале файла. Это режим «по умолчанию».

Р.Б.

Открывает файл для чтения только в двоичном формате. Указатель файла находится в начале файла. Это режим «по умолчанию».

г & плюс;

Открывает файл для чтения и записи. Указатель файла помещается в начале файла.

RB & плюс;

Открывает файл для чтения и записи в двоичном формате. Указатель файла помещается в начале файла.

вес

Открывает файл только для записи. Перезаписывает файл, если файл существует. Если файл не существует, создает новый файл для записи.

термометру

Открывает файл для записи только в двоичном формате. Перезаписывает файл, если файл существует. Если файл не существует, создает новый файл для записи.

ж & плюс;

Открывает файл для записи и чтения. Перезаписывает существующий файл, если файл существует. Если файл не существует, создает новый файл для чтения и записи.

термометр & плюс;

Открывает файл для записи и чтения в двоичном формате. Перезаписывает существующий файл, если файл существует. Если файл не существует, создает новый файл для чтения и записи.

Открывает файл для добавления. Указатель файла находится в конце файла, если файл существует. То есть файл находится в режиме добавления. Если файл не существует, он создает новый файл для записи.

аб

Открывает файл для добавления в двоичном формате. Указатель файла находится в конце файла, если файл существует. То есть файл находится в режиме добавления. Если файл не существует, он создает новый файл для записи.

плюс;

Открывает файл для добавления и чтения. Указатель файла находится в конце файла, если файл существует. Файл открывается в режиме добавления. Если файл не существует, он создает новый файл для чтения и записи.

AB & плюс;

Открывает файл для добавления и чтения в двоичном формате. Указатель файла находится в конце файла, если файл существует. Файл открывается в режиме добавления. Если файл не существует, он создает новый файл для чтения и записи.

Атрибуты объекта файла

Когда файл открыт и у вас есть один объект файла , вы можете получить различную информацию, связанную с этим файлом.

Вот список всех атрибутов, связанных с файловым объектом —

Sr.No. Атрибут и описание
1

file.closed

Возвращает true, если файл закрыт, иначе false.

2

file.mode

Возвращает режим доступа, с которым файл был открыт.

3

имя файла

Возвращает имя файла.

file.closed

Возвращает true, если файл закрыт, иначе false.

file.mode

Возвращает режим доступа, с которым файл был открыт.

имя файла

Возвращает имя файла.

Примечание. Атрибут softtspace не поддерживается в Python 3.x

пример

Live Demo

#!/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();

пример

Live Demo

#!/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]) изменяет текущую позицию файла. Аргумент смещения указывает количество байтов для перемещения. Аргумент 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 () принимает два аргумента: текущее имя файла и новое имя файла.

Синтаксис

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 () для удаления файлов, указав в качестве аргумента имя удаляемого файла.

Синтаксис

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")

пример

Ниже приведен пример создания теста каталога в текущем каталоге:

#!/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. Они заключаются в следующем —

Методы объекта файла

Файловый объект предоставляет функции для работы с файлами.

Методы объекта ОС

Это предоставляет методы для обработки файлов, а также каталогов.