Поиск по сайту:
Вдохновение — это такая девка, которую всегда изнасиловать можно (М.В. Ломоносов).

Python 3 – Файлы I/O

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 3,50 из 5)
Загрузка...
31.10.2017
Python 3 - Файлы I/O

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

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

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

#!/usr/bin/python3

print ("Python - это действительно великий язык, не так ли?")

 

Это приводит к следующему результату на стандартном экране:

Python - это действительно великий язык, не так ли?

Чтение ввода с клавиатуры

Python 2 имеет две встроенные функции для чтения данных из стандартного ввода, которые по умолчанию поставляется с клавиатуры. Эти функции input() и raw_input().

В Python 3, функция raw_input() является устаревшей. Кроме того, функция input() считывает данных с клавиатуры в качестве строки, независимо от того, является ли она заключена в кавычки («» или «»), или нет.

 

Функция input

Функция input([prompt]) эквивалентна raw_input, за исключением того, что она предполагает, что ввод является допустимым выражением в Python и возвращает вычисленный результат.

#!/usr/bin/python3

>>> x = input("кое-что:")
кое-что:25

>>> x
'25'

>>> x = input("кое-что:")
кое-что:'25' # введенные данные, обработанные как строка с или без ''

>>> x
"'25'"

 

Открытие и закрытие файлов

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

Python обеспечивает основные функции и методы, необходимые для работы с файлами по умолчанию. Вы можете сделать большую часть обработки файлов с использованием объекта file.

 

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

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

 

Синтаксис

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

 

Расшифровка параметров:

  • file_name – Этот аргумент является строкой, которая содержит имя файла, к которому вы хотите получить доступ.
  • access_mode – Определяет режим, в котором файл должен быть открыт, т.е. чтение, запись, добавление и т.д. Полный список возможных значений приводятся ниже в таблице. Это необязательный параметр и режим доступа файла по умолчанию для чтения (r).
  • buffering – Если значение buffering  установлено равным 0, буферизация не происходит. Если значение buffering равно 1, буферная строки выполняется во время доступа к файлу. Если указать значение buffering как целое число больше 1, то буферные действие выполняются с указанным размером буфера. Если ответ отрицательный, то размер буфера в системе по умолчанию (поведение по умолчанию).

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

Режим и описание
1r – Открывает файл только для чтения. Указатель файла помещается в начало файла. Это режим “по умолчанию”.
2rb – Открывает файл только для чтения в двоичном формате. Указатель файла помещается в начало файла. Это режим “по умолчанию”.
3r+ – Открывает файл для чтения и записи. Указатель файла помещается в начало файла.
4rb+ – Открывает файл для чтения и записи в двоичном формате. Файл указатель помещается в начало файла.
5w – Открывает файл только для записи. Заменяет файл, если файл существует. Если файл не существует, создается новый файл для записи.
6wb – Открывает файл только для записи в двоичном формате. Заменяет файл, если файл существует. Если файл не существует, создается новый файл для записи.
7w+ – Открывает файл как для чтения так и для записи. Заменяет существующий файл, если файл существует. Если файл не существует, создает новый файл для чтения и записи.
8wb+ – Открывает файл как для записи и чтения в двоичном формате. Заменяет существующий файл, если файл существует. Если файл не существует, создает новый файл для чтения и записи.
9a – Открывает файл для добавления. Указатель файла находится в конце файла, если файл существует. То есть, файл находится в режиме добавления. Если файл не существует, он создает новый файл для записи.
10ab – Открывает файл для добавления в двоичном формате. Указатель файла находится в конце файла, если файл существует. То есть, файл находится в режиме добавления. Если файл не существует, он создает новый файл для записи.
11а+ – Открывает файл для добавления и чтения. Указатель файла находится в конце файла, если файл существует. Файл открывается в режиме добавления. Если файл не существует, он создает новый файл для чтения и записи.
12аb+ – Открывает файл как для добавления так и для чтения в двоичном формате. Если файл существует, указатель файла перемещается в конце файла. Файл открывается в режиме добавления. Если файл не существует, он создает новый файл для чтения и записи.

Атрибуты объекта file

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

Вот список всех атрибутов, связанных с объектом file:

Атрибут & Описание
1file.closed – Возвращает истину, если файл закрывается, в противном случае ложь.
2file.mode – Возвращает режим доступа с помощью которого был открыт файл.
3file.name – Возвращает имя файла.

 

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

Пример

#!/usr/bin/python3

# Открыть файл
ae = open("andreyex.txt", "wb")
print ("Имя файла: ", ae.name)
print ("Закрыт или нет : ", ae.closed)
print ("Режим открытия : ", ae.mode)
fo.close()

 

Это приводит к следующему результату:

Имя файла:  andreyex.txt
Закрыт или нет :  False
Режим открытия :  wb

Метод close()

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

Python автоматически закрывает файл, когда ссылка на объект file переназначается на другой файл. Это хорошая практика, чтобы использовать метод close(), чтобы закрыть файл.

Синтаксис

fileObject.close();

 

Пример

#!/usr/bin/python3

# Открыть файл
fo = open("andreyex.txt", "wb")
print ("Имя файла: ", fo.name)

# Закрыть открытый файл
fo.close()

 

Это приводит к следующему результату:

Имя файла:  andreyex.txt

Чтение и запись файлов

Объект file содержит набор методов доступа, чтобы сделать нашу жизнь проще. Мы хотели бы рассмотреть такие методы, как read() и write()  для чтения и записи файлов.

 

Метод read()

Метод read() записывает любую строку в открытый файл. Важно отметить, что строки Python могут иметь двоичные данные, а не только текст.

Метод read() не добавляет символ новой строки («\n») в конце строки.

 

Синтаксис

fileObject.write(string);

 

Здесь, передаваемый параметр является строкой, которая будет записана в открытый файл.

Пример

#!/usr/bin/python3

# Открыть файл
fo = open("andreyex.txt", "w")
fo.write( "Python-отличный язык.\nЭто здорово!!\n")

# Закрыть открытый файл
fo.close()

 

Описанный выше метод может создать файл andreyex.txt и написать данное содержание в этот файл и, наконец, закрыть его. Если вы откроете этот файл, он будет содержать следующий текст:

Python-отличный язык.
Это здорово!!

 

Метод read()

Метод read() читает строку из открытого файла. Важно отметить, что строки в Python могут иметь двоичные данные помимо текстовых данных.

Синтаксис

fileObject.read([count]);

 

Здесь, передаваемый параметр является число байтов, которые должны быть считаны из открытого файла. Этот метод начинает читать с начала файла, и если count отсутствует, то он пытается прочитать как можно больше, может быть, до конца файла.

 

Пример

Возьмем файл andreyex.txt, который мы создали выше.

#!/usr/bin/python3

# Открыть файл
fo = open("andreyex.txt", "r+")
str = fo.read(12)
print ("Читать строку : ", str)

# Закрыть открытый файл
fo.close()

 

Это приводит к следующему результату:

Читать строку :  Python - это

Позиции файла

Метод tell указывает вам на текущую позицию в файле; Другими словами, следующее чтение или запись будет происходить на столько байтов от начала файла.

Метод seek(offset[, from]) изменяет текущую позицию в файле. Аргумент offset указывает число байтов, которые будут перемещены. Аргумент from определяет базисную позицию, откуда байты должны быть перемещены.

Если from  установлено значение 0, то начало файла используется в качестве опорной позиции. Если он установлен в 1, то текущее положение используется в качестве опорной позиции. Если установлено значение 2, то конец файла будет принят в качестве опорной позиции.

 

Пример

Возьмем файл andreyex.txt, который мы создали выше.

#!/usr/bin/python3

# Открыть файл
fo = open("andreyex.txt", "r+")
str = fo.read(10)
print ("Читать строку : ", str)

# Проверить текущую позицию
position = fo.tell()
print ("Текущая позиция файла : ", position)

# Переместите указатель в начало еще раз
position = fo.seek(0, 0)
str = fo.read(12)
print ("Снова считать строку : ", str)

# Закрыть открытый файл
fo.close()

 

Это приводит к следующему результату:

Читать строку :  Python - это
Текущая позиция файла :  12
Снова считать строку :  Python - это

 

Переименование и удаление файлов

Модуль OS в Python предоставляет методы, которые помогут вам выполнять операции обработки файлов, такие как переименование и удаление файлов.

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

 

Метод rename()

Метод rename() принимает два аргумента: имя файла и новое имя файла.

 

Синтаксис

os.rename(current_file_name, new_file_name)

 

Пример

Ниже приведен пример, чтобы переименовать существующий файл test1.txt:

#!/usr/bin/python3
import os

# Переименование файла с test1.txt в test2.txt
os.rename( "test1.txt", "test2.txt" )

 

Метод remove()

Вы можете использовать метод remove() для удаления файлов, указав имя файла, который будет удален в качестве аргумента.

Синтаксис

os.remove(file_name)

 

Пример

Ниже приведен пример для удаления существующего файла test2.txt:

#!/usr/bin/python3
import os

# Удаление файла test2.txt
os.remove("text2.txt")

 

Каталоги в Python

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

 

Метод mkdir()

Вы можете использовать метод mkdir() модуля os для создания каталогов в текущем каталоге. Вы должны указать аргумент для этого метода, который содержит имя каталога, который будет создан.

 

Синтаксис

os.mkdir("newdir")

Пример

Ниже приведен пример, чтобы создать каталог тест в текущем каталоге:

#!/usr/bin/python3
import os

# Создание каталога "test"
os.mkdir("test")

 

Метод chdir()

Вы можете использовать метод chdir() для изменения текущего каталога. Метод chdir() принимает аргумент, которым является имя каталога, который вы хотите сделать текущим каталогом.

 

Синтаксис

os.chdir("newdir")

Пример

Ниже приведен пример, чтобы перейти в каталог “/home/newdir”:

#!/usr/bin/python3
import os

# Изменение каталога на "/home/newdir"
os.chdir("/home/newdir")

 

Метод getcwd()

Метод getcwd() отображает текущий рабочий каталог.

 

Синтаксис

os.getcwd()

 

Пример

Ниже приведен Пример, чтобы дать текущий каталог –

#!/usr/bin/python3
import os

# Команда покажет расположение текущего каталога
os.getcwd()

 

Метод rmdir()

Метод rmdir() удаляет каталог, который передается в качестве аргумента в метод.

Перед удалением каталога, все содержимое в нем должно быть удалено.

 

Синтаксис

os.rmdir('dirname')

Пример

Ниже приведен пример, чтобы удалить каталог “/tmp/test”. Требуется, чтобы вы указали полное имя каталога, в противном случае он будет искать этот каталог в текущем каталоге.

#!/usr/bin/python3
import os

# Это позволит удалить каталог "/tmp/test".
os.rmdir( "/tmp/test"  )

 

Связанные методы для файлов и каталогов

Есть три важных источника, которые предоставляют широкий спектр вспомогательных методов для обработки и манипулирования файлами& каталогами в операционных системах Windows, и Unix. Они заключаются в следующем:

  • File Object Methods – Объект file  предоставляет функции для работы с файлами.
  • OS Object Methods – Предоставляет методы для обработки файлов и каталогов.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Спасибо!

Теперь редакторы в курсе.