Работа с файлами в python. чтение и запись в файл (ввод-вывод)
Содержание:
- File Positions
- Способ 1
- Использование модуля urllib.request
- Как читать файлы
- Чтение и запись в бинарном режиме доступа
- Закрытие открытого файла с помощью метода close()
- Общие советы
- Заключение
- Шаг 6 — Проверка кода
- Шаг 3 — Чтение файла
- Инструменты и библиотеки
- 4: Запись в файл
- Запись информации в файл
- С помощью модуля os
- The read() Method
File Positions
The tell() method tells you the current position within the file; in other words, the next read or write will occur at that many bytes from the beginning of the file.
The seek(offset) method changes the current file position. The offset argument indicates the number of bytes to be moved. The from argument specifies the reference position from where the bytes are to be moved.
If from is set to 0, it means use the beginning of the file as the reference position and 1 means use the current position as the reference position and if it is set to 2 then the end of the file would be taken as the reference position.
Example
Let us take a file foo.txt, which we created above.
#!/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()
This produces the following result −
Read String is : Python is Current file position : 10 Again read String is : Python is
Способ 1
import os import shutil import glob # перейти в папку RandomFiles os.chdir('./RandomFiles') # получить список файлов в папке RandomFiles files_to_group = [] for random_file in os.listdir('.'): files_to_group.append(random_file) # получить все расширения имен всех файлов file_extensions = [] for our_file in files_to_group: file_extensions.append(os.path.splitext(our_file)) print(set(file_extensions)) file_types = set(file_extensions) for type in file_types: new_directory = type.replace(".", " ") os.mkdir(new_directory) # создать папку с именем данного расширения for fname in glob.glob(f'*.{type}'): shutil.move(fname, new_directory)
Для этого импортируем еще две библиотеки: shutil и glob. Первая поможет перемещать файлы, а вторая – находить и систематизировать. Но обо всем по порядку.
Для начала получим список всех файлов в директории.
Здесь мы предполагаем, что у нас нет ни малейшего понятия о том, какие именно файлы лежат в этой папке. Вместо того, чтобы вписывать все расширения вручную и использовать лестницу инструкций if или switch, мы желаем, чтобы программа сама просмотрела каталог и определила, на какие типы можно разделить его содержание. Что, если бы там были файлы с десятками расширений или логи? Вы бы стали описывать их вручную?
Получив список всех
файлов, мы заходим в еще один цикл, чтобы извлечь расширения названий.
Обратите внимание на разделение строки:
os.path.splitext(our_file)
Сейчас наша переменная выглядит как-нибудь так: . Когда разделим ее, получим следующее:
`('5', '.docx')`
Мы возьмем отсюда второй элемент по индексу , то есть . Ведь по индексу у нас располагается 5.
Таким образом, у нас имеется список всех файловых расширений в папке, в том числе повторяющихся. Чтобы оставить только уникальные элементы, преобразуем его во множество. К примеру, если бы этот список состоял исключительно из , повторяющегося снова и снова, то в set остался бы всего один элемент.
# создать множество и присвоить его переменной file_types = set(file_extensions)
Заметим, что в списке типов файлов каждое расширение содержит в начале. Если мы назовем так папки на UNIX-системе, то они будут скрытыми, что не входит в наши намерения.
Поэтому, итерируя
по нашему множеству, мы заменяем точку на пустую строку. И создаем папку с полученным
названием.
new_directory = type.replace(".", " ") # наша директория теперь будет называться "docx"
Но чтобы переместить файлы, нам все еще нужно расширение .
for fname in glob.glob(f'*.{type}')
Этим попросту отбираем все файлы, оканчивающиеся расширением . Заметьте, что в нет пробелов.
Символ подстановки обозначает, что подходит любое имя, если оно заканчивается на . Поскольку мы уже включили точку в поиск, мы используем , что значит «все после первого символа». В нашем примере это .
Что дальше?
Перемещаем любые файлы с данным расширением в директорию с тем же названием.
shutil.move(fname, new_directory)
Таким образом, как только в цикле создана папка для первого попавшегося файла с данным расширением, все последующие файлы будут отправлены в нее же. Все будет сгруппировано без повторения каталогов.
Использование модуля urllib.request
Модуль urllib.request используется для открытия или загрузки файла через HTTP. В частности, метод urlretrieve этого модуля – это то, что мы будем использовать для фактического получения файла.
Чтобы использовать этот метод, вам необходимо передать два аргумента методу urlretrieve: первый аргумент – это URL-адрес ресурса, который вы хотите получить, а второй аргумент – это путь к локальному файлу, в котором вы хотите сохранить загруженный файл.
Давайте посмотрим на следующий пример:
import urllib.request print('Beginning file download with urllib2...') url = 'http://i3.ytimg.com/vi/J---aiyznGQ/mqdefault.jpg' urllib.request.urlretrieve(url, '/Users/scott/Downloads/cat.jpg')
В приведенном выше коде мы сначала импортируем модуль urllib.request. Затем мы создаем URL-адрес переменной, который содержит путь к загружаемому файлу. Наконец, мы вызываем метод urlretrieve и передаем ему переменную url в качестве первого аргумента, «/Users/scott/Downloads/cat.jpg» в качестве второго параметра для места назначения файла. Имейте в виду, что вы можете передать любое имя файла в качестве второго параметра, и это местоположение и имя, которое будет иметь ваш файл, при условии, что у вас есть правильные разрешения.
Запустите указанный выше скрипт и перейдите в каталог «Загрузки». Вы должны увидеть загруженный файл с именем «cat.jpg».
Примечание. Этот urllib.request.urlretrieve считается «устаревшим интерфейсом» в Python 3, и в какой-то момент в будущем он может стать устаревшим. Из-за этого я бы не рекомендовал использовать его в пользу одного из методов ниже. Мы включили его сюда из-за его популярности в Python 2.
Как читать файлы
Python содержит в себе функцию, под названием «open», которую можно использовать для открытия файлов для чтения. Создайте текстовый файл под названием test.txt и впишите:
Python
This is test file
line 2
line 3
this line intentionally left lank
1 2 3 4 |
This is test file line 2 line 3 this line intentionally left lank |
Вот несколько примеров того, как использовать функцию «открыть» для чтения:
Python
handle = open(«test.txt»)
handle = open(r»C:\Users\mike\py101book\data\test.txt», «r»)
1 2 |
handle=open(«test.txt») handle=open(r»C:\Users\mike\py101book\data\test.txt»,»r») |
В первом примере мы открываем файл под названием test.txt в режиме «только чтение». Это стандартный режим функции открытия файлов
Обратите внимание на то, что мы не пропускаем весь путь к файлу, который мы собираемся открыть в первом примере. Python автоматически просмотрит папку, в которой запущен скрипт для text.txt
Если его не удается найти, вы получите уведомление об ошибке IOError. Во втором примере показан полный путь к файлу, но обратите внимание на то, что он начинается с «r». Это значит, что мы указываем Python, чтобы строка обрабатывалась как исходная. Давайте посмотрим на разницу между исходной строкой и обычной:
Python
>>> print(«C:\Users\mike\py101book\data\test.txt»)
C:\Users\mike\py101book\data est.txt
>>> print(r»C:\Users\mike\py101book\data\test.txt»)
C:\Users\mike\py101book\data\test.txt
1 2 3 4 5 |
>>>print(«C:\Users\mike\py101book\data\test.txt») C\Users\mike\py101book\data est.txt >>>print(r»C:\Users\mike\py101book\data\test.txt») C\Users\mike\py101book\data\test.txt |
Как видно из примера, когда мы не определяем строку как исходную, мы получаем неправильный путь. Почему это происходит? Существуют определенные специальные символы, которые должны быть отображены, такие как “n” или “t”. В нашем случае присутствует “t” (иными словами, вкладка), так что строка послушно добавляет вкладку в наш путь и портит её для нас. Второй аргумент во втором примере это буква “r”. Данное значение указывает на то, что мы хотим открыть файл в режиме «только чтение». Иными словами, происходит то же самое, что и в первом примере, но более явно. Теперь давайте, наконец, прочтем файл!
Введите нижеизложенные строки в скрипт, и сохраните его там же, где и файл test.txt.
Python
handle = open(«test.txt», «r»)
data = handle.read()
print(data)
handle.close()
1 2 3 4 |
handle=open(«test.txt»,»r») data=handle.read() print(data) handle.close() |
После запуска, файл откроется и будет прочитан как строка в переменную data. После этого мы печатаем данные и закрываем дескриптор файла. Следует всегда закрывать дескриптор файла, так как неизвестно когда и какая именно программа захочет получить к нему доступ. Закрытие файла также поможет сохранить память и избежать появления странных багов в программе. Вы можете указать Python читать строку только раз, чтобы прочитать все строки в списке Python, или прочесть файл по частям. Последняя опция очень полезная, если вы работаете с большими фалами и вам не нужно читать все его содержимое, на что может потребоваться вся память компьютера.
Давайте обратим внимание на различные способы чтения файлов. Python
handle = open(«test.txt», «r»)
data = handle.readline() # read just one line
print(data)
handle.close()
Python
handle = open(«test.txt», «r»)
data = handle.readline() # read just one line
print(data)
handle.close()
1 2 3 4 |
handle=open(«test.txt»,»r») data=handle.readline()# read just one line print(data) handle.close() |
Если вы используете данный пример, будет прочтена и распечатана только первая строка текстового файла. Это не очень полезно, так что воспользуемся методом readlines() в дескрипторе:
Python
handle = open(«test.txt», «r»)
data = handle.readlines() # read ALL the lines!
print(data)
handle.close()
1 2 3 4 |
handle=open(«test.txt»,»r») data=handle.readlines()# read ALL the lines! print(data) handle.close() |
После запуска данного кода, вы увидите напечатанный на экране список, так как это именно то, что метод readlines() и выполняет. Далее мы научимся читать файлы по мелким частям.
Чтение и запись в бинарном режиме доступа
Что такое
бинарный режим доступа? Это когда данные из файла считываются один в один без
какой-либо обработки. Обычно это используется для сохранения и считывания
объектов. Давайте предположим, что нужно сохранить в файл вот такой список:
books = ("Евгений Онегин", "Пушкин А.С.", 200), ("Муму", "Тургенев И.С.", 250), ("Мастер и Маргарита", "Булгаков М.А.", 500), ("Мертвые души", "Гоголь Н.В.", 190)
Откроем файл на
запись в бинарном режиме:
file = open("out.bin", "wb")
Далее, для работы
с бинарными данными подключим специальный встроенный модуль pickle:
import pickle
И вызовем него
метод dump:
pickle.dump(books, file)
Все, мы
сохранили этот объект в файл. Теперь прочитаем эти данные. Откроем файл на
чтение в бинарном режиме:
file = open("out.bin", "rb")
и далее вызовем
метод load модуля pickle:
bs = pickle.load(file)
Все, теперь
переменная bs ссылается на
эквивалентный список:
print( bs )
Аналогичным
образом можно записывать и считывать сразу несколько объектов. Например, так:
import pickle book1 = "Евгений Онегин", "Пушкин А.С.", 200 book2 = "Муму", "Тургенев И.С.", 250 book3 = "Мастер и Маргарита", "Булгаков М.А.", 500 book4 = "Мертвые души", "Гоголь Н.В.", 190 try: file = open("out.bin", "wb") try: pickle.dump(book1, file) pickle.dump(book2, file) pickle.dump(book3, file) pickle.dump(book4, file) finally: file.close() except FileNotFoundError: print("Невозможно открыть файл")
А, затем,
считывание в том же порядке:
file = open("out.bin", "rb") b1 = pickle.load(file) b2 = pickle.load(file) b3 = pickle.load(file) b4 = pickle.load(file) print( b1, b2, b3, b4, sep="\n" )
Вот так в Python выполняется
запись и считывание данных из файла.
Закрытие открытого файла с помощью метода close()
Когда вы открываете файл в Python, чрезвычайно важно закрыть файл после внесения изменений. Это сохраняет любые изменения, которые вы сделали ранее, удаляет файл из памяти и предотвращает дальнейшее чтение или запись в программе
Синтаксис для закрытия открытого файла в Python:
fileobject.close()
Если мы продолжим наши предыдущие примеры, где мы читаем файлы, вот как вы закроете файл:
text_file = open('/Users/pankaj/abc.txt','r') # some file operations here text_file.close()
Кроме того, вы можете избежать закрытия файлов вручную, если используете блок with. Как только блок with выполняется, файлы закрываются и становятся недоступными для чтения и записи.
Общие советы
Собеседование может быть тяжелым и напряженным, но вы не должны позволять этому охватить контроль над вами. Вы можете прочитать все вопросы и ответы, которые вы найдете в Интернете, и все же провалить это интервью. Почему же?
Прежде всего, ваш потенциальный работодатель спросит вас не только о том, как хорошо вы знаете Python основы. Он может спросить вас о вашем предыдущем опыте, умеете ли вы писать программы на Python, проверить, какой вы человек, узнать о ваших увлечениях — все эти факторы очень важны для того, чтобы устроиться на эту работу.
Хороший способ оставить хорошее впечатление — не вести себя так, как будто ваша жизнь зависит от результатов собеседования — если вы сидите там и пытаетесь ответить на технические вопросы по собеседованию на Python, в то же время сильно потея и дрожа, как лист на ветке, вы можете напугать человека, с которым вы разговариваете.
Кроме того, не будьте дерзкими — конечно, у вас может быть 20-летний опыт работы с Python, но вы можете не пройти интервью по Python если ведете себя как высокомерный человек?
Хорошо выспитесь ночью и не беспокойтесь об этом — покажите вашему потенциальному работодателю человека, которым вы действительно являетесь, и вы, вероятно, добьетесь успеха. Помните — эти люди — профессионалы, которые ежедневно имеют дело с сотрудниками — если вы попытаетесь лгать или обманывать, они, скорее всего, поймают вас в считанные секунды.
Заключение
Людей, которые знаю, как выглядит работа с файлами Python разбирают с руками и ногами. Когда вы отвечаете на такое количество вопросов по Python, вы становитесь увереннее. Просто помните — уверенность не равна дерзкости.
Итак, мы подошли к концу этой статьи для вопросов по интервью о Python. Я надеюсь, что вы нашли эту информацию интересной и будете использовать ее, чтобы получить эту работу!
Шаг 6 — Проверка кода
Конечный результат должен выглядеть примерно так:
files.py
path = '/users/sammy/days.txt' days_file = open(path,'r') days = days_file.read() new_path = '/users/sammy/new_days.txt' new_days = open(new_path,'w') title = 'Days of the Weekn' new_days.write(title) print(title) new_days.write(days) print(days) days_file.close() new_days.close()
После сохранения кода откройте терминал и запустите свой Python- скрипт, например:python files.py
Результат должен выглядеть так:
Вывод Days of the Week Monday Tuesday Wednesday Thursday Friday Saturday Sunday
Теперь проверим код полностью, открыв файл new_days.txt. Если все пройдет хорошо, когда мы откроем этот файл, его содержимое должно выглядеть следующим образом:
new_days.txt
Days of the Week Monday Tuesday Wednesday Thursday Friday Saturday Sunday
Шаг 3 — Чтение файла
Файл был открыт, и мы можем работать с ним через переменную, которую мы ему присвоили. Python предоставляет три связанные операции для чтения информации из файла. Покажем, как использовать каждую из них.
Первая операция <file>.read() возвращает все содержимое файла как одну строку.
days_file.read() Вывод 'MondaynTuesdaynWednesdaynThursdaynFridaynSaturdaynSundayn'
Вторая операция <file>.readline() возвращает следующую строку файла (текст до следующего символа новой строки, включая сам символ). Проще говоря, эта операция считывает файл по частям.
days_file.readline() Вывод 'Mondayn'
Поэтому, когда вы прочтете строку с помощью readline, она перейдет к следующей строке. Если вы снова вызовете эту операцию, она вернет следующую строку, прочитанную в файле.
days_file.readline() Вывод 'Tuesdayn'
Последняя операция, <file>.readlines(), возвращает список строк в файле. При этом каждый элемент списка представляет собой одну строку.
days_file.readlines() Вывод
Как только файл был прочитан с использованием одной из операций, его нельзя прочитать снова. Например, если вы запустите days_file.read(), за которой следует days_file.readlines(), вторая операция вернет пустую строку. Поэтому, когда вы захотите прочитать содержимое файла, вам нужно будет сначала открыть новую файловую переменную.
Инструменты и библиотеки
Спектр доступных решений для связанных с Python инструментов, модулей и библиотек PDF немного сбивает с толку. Требуется время, чтобы понять, что к чему и какие проекты постоянно поддерживаются. Наше исследование позволило отобрать тех кандидатов, которые соответствуют современным требованиям:
- — библиотека для извлечения информации и содержимого документов, постраничного разделения документов, объединения документов, обрезки страниц и добавления водяных знаков. PyPDF2 поддерживает как незашифрованные, так и зашифрованные документы.
- — позиционируется как «быстрая и удобная библиотека чистого PDF» и реализована как оболочка для PDFMiner, и . Основная идея заключается в том, чтобы «надежно извлекать данные из наборов PDF‑файлов, используя как можно меньше кода».
- — расширение библиотеки , которое позволяет анализировать и конвертировать PDF‑документы. Не следует его путать с с таким же именем.
- — амбициозная промышленная библиотека, в основном ориентированная на оздание высококачественных PDF‑документов. Доступны как свободная версия с открытым исходным кодом, так и коммерческая, улучшенная, версия ReportLab PLUS.
- — чистый анализатор PDF на основе Python для чтения и записи PDF. Он точно воспроизводит векторные форматы без растеризации. Вместе с ReportLab он помогает повторно использовать части существующих PDF‑файлов в новых PDF‑файлах, созданных с помощью ReportLab.
В своём исследовании мы учитывали мнения Github-сообщества, а именно:
- Звёзды Github: общее количество звезд проекта, выставленных пользователям.
- Релизы Github: количество релизов каждого проекта, что отражает активность работы над проектом и его зрелость.
- Fork-и Github: количество, сделанных копий каждого проекта, что показывает популярность использования проекта в собственных работах.
Библиотека | Использование | Github | ReleasesGithub | Github |
---|---|---|---|---|
Чтение | 2 972 | 10 | 751 | |
Чтение | 474 | 59 | 111 | |
Чтение | 20 | 4 | ||
Чтение | 85 | 69 | ||
Чтение | 971 | 23 | 200 | |
Чтение | 1 599 | 11 | 1 400 | |
Чтение | 477 | 1 | 70 | |
Чтение, Запись/Создание | 1 145 | 4 | 187 | |
Запись/Создание | 31 | 48 | 22 | |
Запись/Создание | 23 | 26 | 7 | |
Запись/Создание | 457 | 7 | 174 |
Читать это руководство, не прорабатывая приведённые в нём примеры, бессмысленно. Поэтому, вооружимся и воспользуемся менеджером пакетов или pip3 для установки PyPDF2 и PyMuPDF. Наберём в командной строке (Windows):
pip3 install pypdf2 pip3 install pymupdf
Для того, что бы не запутаться создадим папочку для своего проекта. Как видите местом для неё выбрана папка «Документы» стандартной установки Windows.Вот так это выглядит в Windows
Папки и будем использовать для записи результатов работы своих программ, а в папке храним исходные PDF‑файлы, сами скрипты будем хранить в корне. Кстати, все примеры этой серии статей о работе с PDF‑файлами есть на , откуда их можно забрать и использовать в качестве «кирпича» для своих упражнений
4: Запись в файл
Теперь попробуйте создать новый файл, который будет включать заголовок Days of the Week. Сначала создайте переменную title в файле files.py.
Сохраните дни недели в строковой переменной days. Ниже показан код из всех вышеупомянутых разделов (чтобы было понятнее); файл открывается в режиме чтения, выходные данные операции чтения сохраняются в новой переменной days.
В файле есть переменные для заголовка и содержимого файла days. Теперь можно записать данные в новый файл. Сначала укажите местонахождение файла (/users/8host/), затем – название нового файла (например, new_days.txt). Путь к новому файлу можно указать в переменной new_path. Чтобы открыть новый файл для записи, используйте функцию open() с параметром ‘w’.
Примечание: Если файл с таким именем (new_days.txt) уже существует, при открытии в режиме ‘w’ его содержимое пострадает.
Функция откроет файл, после чего вы можете записать в него данные с помощью операции <file>.write(). Операции записи необходим всего один параметр – строка, которую нужно записать в файл. Чтобы начать новую строку в файле, нужно явно использовать символ новой строки. Запишите в файл files.py заголовок и добавьте пару операторов print.
После этого нужно закрыть файл.
Запись информации в файл
Теперь давайте
посмотрим, как происходит запись информации в файл. Во-первых, нам нужно
открыть файл на запись, например, так:
file = open("out.txt", "w")
и далее вызвать
метод write:
file.write("Hello World!")
В результате у
нас будет создан файл out.txt со строкой «Hello World!». Причем, этот
файл будет располагаться в том же каталоге, что и файл с текстом программы на Python.
Далее сделаем
такую операцию: запишем метод write следующим
образом:
file.write("Hello")
И снова выполним
эту программу. Смотрите, в нашем файле out.txt прежнее
содержимое исчезло и появилось новое – строка «Hello». То есть,
когда мы открываем файл на запись в режимах
w, wt, wb,
то прежнее
содержимое файла удаляется. Вот этот момент следует всегда помнить.
Теперь
посмотрим, что будет, если вызвать метод write несколько раз
подряд:
file.write("Hello1") file.write("Hello2") file.write("Hello3")
Смотрите, у нас
в файле появились эти строчки друг за другом. То есть, здесь как и со
считыванием: объект file записывает информацию, начиная с текущей файловой
позиции, и автоматически перемещает ее при выполнении метода write.
Если мы хотим
записать эти строчки в файл каждую с новой строки, то в конце каждой пропишем
символ переноса строки:
file.write("Hello1\n") file.write("Hello2\n") file.write("Hello3\n")
Далее, для
дозаписи информации в файл, то есть, записи с сохранением предыдущего
содержимого, файл следует открыть в режиме ‘a’:
file = open("out.txt", "a")
Тогда, выполняя
эту программу, мы в файле увидим уже шесть строчек. И смотрите, в зависимости
от режима доступа к файлу, мы должны использовать или методы для записи, или
методы для чтения. Например, если вот здесь попытаться прочитать информацию с
помощью метода read:
file.read()
то возникнет
ошибка доступа. Если же мы хотим и записывать и считывать информацию, то можно воспользоваться
режимом a+:
file = open("out.txt", "a+")
Так как здесь
файловый указатель стоит на последней позиции, то для считывания информации,
поставим его в самое начало:
file.seek() print( file.read() )
А вот запись
данных всегда осуществляется в конец файла.
Следующий
полезный метод для записи информации – это writelines:
file.writelines("Hello1\n", "Hello2\n")
Он записывает
несколько строк, указанных в коллекции. Иногда это бывает удобно, если в
процессе обработки текста мы имеем список и его требуется целиком поместить в
файл.
С помощью модуля os
popen
Этот метод открывает канал к вашей команде
Однако обратите внимание, что этот метод устарел в Python 2.6, поэтому мы не рекомендуем его использовать, если в этом нет необходимости. В качестве альтернативы документация Python советует нам использовать вместо этого методы из модуля подпроцесса.
Синтаксис следующий:
os.popen(cmd])
Здесь возвращаемое значение представляет собой файловый объект, подключенный к каналу. Этот объект может быть прочитан или записан в зависимости от режима. По умолчанию установлен режим «r», который позволяет читать содержимое файла.
В приведенном ниже примере файл file1.txt будет скопирован в file6.txt:
import os # Windows os.popen('copy file1.txt file6.txt') # Unix os.popen('cp file1.txt file6.txt')
Выполнение команды таким образом точно такое же, как если бы вы запускали ее непосредственно из командной строки вашего терминала.
system
Этот метод выполняет указанную команду в подоболочке. Он доступен как для Unix, так и для Windows. Синтаксис следующий:
os.system(command)
Здесь команда – это строка, содержащая команду оболочки DOS или Unix. В нашем случае сюда мы поместим команду copy или cp.
Например, следующий код скопирует file1.txt в file7.txt.
import os # Windows os.system('copy file1.txt file7.txt') # Unix os.system('cp file1.txt file7.txt')
Это выглядит идентично предыдущей команде os.popen, которую мы только что использовали, но команда выполняется в подоболочке, что означает, что она выполняется в отдельном потоке параллельно с вашим исполняемым кодом. Чтобы дождаться его завершения, вам нужно вызвать .wait() для объекта, возвращаемого os.system.
The read() Method
The read() method reads a string from an open file. It is important to note that Python strings can have binary data. apart from text data.
Syntax
fileObject.read()
Here, passed parameter is the number of bytes to be read from the opened file. This method starts reading from the beginning of the file and if count is missing, then it tries to read as much as possible, maybe until the end of file.
Example
Let’s take a file foo.txt, which we created above.
#!/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()
This produces the following result −
Read String is : Python is