Python - ввод-вывод файлов

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

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

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

#!/usr/bin/python

print "Python is really a great language,", "isn't it?"

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

Python is really a great language, isn't it?

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

Python предоставляет две встроенные функции для чтения строки текста из стандартного ввода, который по умолчанию поступает с клавиатуры. Эти функции -

  • raw_input
  • input

Raw_input Функция

Функция raw_input ([prompt]) считывает одну строку из стандартного ввода и возвращает ее в виде строки (удаляя завершающую новую строку).

#!/usr/bin/python

str = raw_input("Enter your input: ")
print "Received input is : ", str

Вам будет предложено ввести любую строку, и она отобразит ту же строку на экране. Когда я набрал «Hello Python!», Его результат был таким:

Enter your input: Hello Python
Received input is :  Hello Python

Вход функции

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

#!/usr/bin/python

str = input("Enter your input: ")
print "Received input is : ", str

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

Enter your input: [x*5 for x in range(2,10,2)]
Recieved input is :  [10, 20, 30, 40]

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

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

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

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

4

file.softspace

Возвращает false, если пространство явно требуется с print, в противном случае - true.

пример

#!/usr/bin/python

# 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
print "Softspace flag : ", fo.softspace

Это дает следующий результат -

Name of the file:  foo.txt
Closed or not :  False
Opening mode :  wb
Softspace flag :  0

Близко () Метод

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

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

Синтаксис

fileObject.close()

пример

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name

# Close opend file
fo.close()

Это дает следующий результат -

Name of the file:  foo.txt

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

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

Записи () Метод

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

Метод write () не добавляет символ новой строки ('\ n') в конец строки -

Синтаксис

fileObject.write(string)

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

пример

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "wb")
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 () считывает строку из открытого файла. Важно отметить, что строки Python могут содержать двоичные данные. кроме текстовых данных.

Синтаксис

fileObject.read([count])

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

пример

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

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10);
print "Read String is : ", str
# Close opend file
fo.close()

Это дает следующий результат -

Read String is :  Python is

Расположение файлов

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

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

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

пример

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

#!/usr/bin/python

# 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 opend 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/python
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/python
import os

# Delete file test2.txt
os.remove("text2.txt")

Каталоги в Python

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

MkDir () Метод

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

Синтаксис

os.mkdir("newdir")

пример

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

#!/usr/bin/python
import os

# Create a directory "test"
os.mkdir("test")

ChDir () Метод

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

Синтаксис

os.chdir("newdir")

пример

Ниже приведен пример перехода в каталог "/ home / newdir" -

#!/usr/bin/python
import os

# Changing a directory to "/home/newdir"
os.chdir("/home/newdir")

Getcwd () Метод

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

Синтаксис

os.getcwd()

пример

Ниже приведен пример текущего каталога -

#!/usr/bin/python
import os

# This would give location of the current directory
os.getcwd()

RmDir () Метод

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

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

Синтаксис

os.rmdir('dirname')

пример

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

#!/usr/bin/python
import os

# This would  remove "/tmp/test"  directory.
os.rmdir( "/tmp/test"  )

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

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

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

  • Методы объектов ОС : они предоставляют методы для обработки файлов и каталогов.