В этой главе рассматриваются все основные функции ввода/вывода, доступные в Python 3. Для получения дополнительных функций, пожалуйста, обратитесь к документации по стандартной Python.
Самый простой способ получения вывода, использовать заявление print, в который вы можете передать ноль или иное выражение, разделенных запятыми. Эта функция преобразует выражения, передаваемые в строку, и записывает результат в стандартный вывод следующим образом:
#!/usr/bin/python3 print ("Python - это действительно великий язык, не так ли?")
Это приводит к следующему результату на стандартном экране:
Python - это действительно великий язык, не так ли?
Python 2 имеет две встроенные функции для чтения данных из стандартного ввода, которые по умолчанию поставляется с клавиатуры. Эти функции input() и raw_input().
В Python 3, функция raw_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])
Расшифровка параметров:
Вот список различных режимов открытия файла:
№ | Режим и описание |
---|---|
1 | r – Открывает файл только для чтения. Указатель файла помещается в начало файла. Это режим “по умолчанию”. |
2 | rb – Открывает файл только для чтения в двоичном формате. Указатель файла помещается в начало файла. Это режим “по умолчанию”. |
3 | r+ – Открывает файл для чтения и записи. Указатель файла помещается в начало файла. |
4 | rb+ – Открывает файл для чтения и записи в двоичном формате. Файл указатель помещается в начало файла. |
5 | w – Открывает файл только для записи. Заменяет файл, если файл существует. Если файл не существует, создается новый файл для записи. |
6 | wb – Открывает файл только для записи в двоичном формате. Заменяет файл, если файл существует. Если файл не существует, создается новый файл для записи. |
7 | w+ – Открывает файл как для чтения так и для записи. Заменяет существующий файл, если файл существует. Если файл не существует, создает новый файл для чтения и записи. |
8 | wb+ – Открывает файл как для записи и чтения в двоичном формате. Заменяет существующий файл, если файл существует. Если файл не существует, создает новый файл для чтения и записи. |
9 | a – Открывает файл для добавления. Указатель файла находится в конце файла, если файл существует. То есть, файл находится в режиме добавления. Если файл не существует, он создает новый файл для записи. |
10 | ab – Открывает файл для добавления в двоичном формате. Указатель файла находится в конце файла, если файл существует. То есть, файл находится в режиме добавления. Если файл не существует, он создает новый файл для записи. |
11 | а+ – Открывает файл для добавления и чтения. Указатель файла находится в конце файла, если файл существует. Файл открывается в режиме добавления. Если файл не существует, он создает новый файл для чтения и записи. |
12 | аb+ – Открывает файл как для добавления так и для чтения в двоичном формате. Если файл существует, указатель файла перемещается в конце файла. Файл открывается в режиме добавления. Если файл не существует, он создает новый файл для чтения и записи. |
После того, как файл открыт, и у вас есть один объект file, вы можете получить различную информацию, относящуюся к этому файлу.
Вот список всех атрибутов, связанных с объектом file:
№ | Атрибут & Описание |
---|---|
1 | file.closed – Возвращает истину, если файл закрывается, в противном случае ложь. |
2 | file.mode – Возвращает режим доступа с помощью которого был открыт файл. |
3 | file.name – Возвращает имя файла. |
#!/usr/bin/python3 # Открыть файл ae = open("andreyex.txt", "wb") print ("Имя файла: ", ae.name) print ("Закрыт или нет : ", ae.closed) print ("Режим открытия : ", ae.mode) fo.close()
Это приводит к следующему результату:
Имя файла: andreyex.txt Закрыт или нет : False Режим открытия : wb
Метод 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() записывает любую строку в открытый файл. Важно отметить, что строки 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() читает строку из открытого файла. Важно отметить, что строки в 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() принимает два аргумента: имя файла и новое имя файла.
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() для удаления файлов, указав имя файла, который будет удален в качестве аргумента.
os.remove(file_name)
Ниже приведен пример для удаления существующего файла test2.txt:
#!/usr/bin/python3 import os # Удаление файла test2.txt os.remove("text2.txt")
Все файлы содержатся в различных каталогах, и Python не имеет никаких проблем с ними тоже. Модуль os имеет несколько методов, которые помогают создавать, удалять и изменять каталоги.
Вы можете использовать метод mkdir() модуля os для создания каталогов в текущем каталоге. Вы должны указать аргумент для этого метода, который содержит имя каталога, который будет создан.
os.mkdir("newdir")
Ниже приведен пример, чтобы создать каталог тест в текущем каталоге:
#!/usr/bin/python3 import os # Создание каталога "test" os.mkdir("test")
Вы можете использовать метод chdir() для изменения текущего каталога. Метод chdir() принимает аргумент, которым является имя каталога, который вы хотите сделать текущим каталогом.
os.chdir("newdir")
Ниже приведен пример, чтобы перейти в каталог “/home/newdir”:
#!/usr/bin/python3 import os # Изменение каталога на "/home/newdir" os.chdir("/home/newdir")
Метод getcwd() отображает текущий рабочий каталог.
os.getcwd()
Ниже приведен Пример, чтобы дать текущий каталог –
#!/usr/bin/python3 import os # Команда покажет расположение текущего каталога os.getcwd()
Метод rmdir() удаляет каталог, который передается в качестве аргумента в метод.
Перед удалением каталога, все содержимое в нем должно быть удалено.
os.rmdir('dirname')
Ниже приведен пример, чтобы удалить каталог “/tmp/test”. Требуется, чтобы вы указали полное имя каталога, в противном случае он будет искать этот каталог в текущем каталоге.
#!/usr/bin/python3 import os # Это позволит удалить каталог "/tmp/test". os.rmdir( "/tmp/test" )
Есть три важных источника, которые предоставляют широкий спектр вспомогательных методов для обработки и манипулирования файлами& каталогами в операционных системах Windows, и Unix. Они заключаются в следующем: