Напишите программу, которая будет считывать три числа из текстового файла с именем kvur txt

Обновлено: 05.07.2024

Пример скрипта для чтения текстового файла приведен ниже. Загрузите сжатые файлы для модуля 3 по ссылке «Ресурсы» в верхней части этой страницы, извлеките файлы в исходный каталог, затем скопируйте файлы simpleread.py и number.txt в подкаталог unit3 вашего рабочего каталога. Изучите, затем запустите скрипт. Обратите внимание, что файл number.txt должен находиться в том же каталоге, что и ваш скрипт Python.

Как видите, чтение текстового файла из Python — простой процесс. Первый шаг — открыть файл для чтения; опция r используется, так как файл будет только читаться. Другие варианты описаны в таблице 3.1. Если это текстовый файл, то содержимое можно прочитать построчно, если это двоичный файл (например, tiff или doc), то чтение будет более сложным и не рассматривается в этом разделе.

Таблица 3.1 Параметры при открытии файла
Режим файла Операции
r Открыть для чтения
w Открыть для записи ( truncate)
a Открыть для записи (добавить)
r+ Открыть для чтения/записи
w+ Открыть для чтения/записи ( truncate)
a+ Открыть для чтения/записи (добавить)
rb Открыть для двоичного чтения
wb Открыть для двоичной записи ( truncate)
ab Открыть для двоичной записи (добавить)
rb+ Открыть для чтения/записи
wb+ Открыть для чтения/записи (усечение)
ab+ Открыть для чтения/записи (добавление)

Теперь вам нужно адаптировать один из методов, приведенных в приведенном выше скрипте, чтобы числа и слова можно было разделить на отдельные списки. Для этого вам нужно будет использовать функцию isalpha() вместе с функцией isdigit(). Адаптируйте файл number.txt, чтобы он соответствовал входным данным, показанным ниже, а затем запустите скрипт, и вы должны получить результат, показанный ниже:

Ввод

Вывод

>python simplereadsplit.py
[1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13]
['pete', 'dan', 'Ричард']

Запись в текстовый файл

Запись в текстовый файл аналогична чтению из файла. При открытии файла доступны два варианта: добавить или обрезать файл. Добавление к файлу оставляет нетронутым любое содержимое, уже находящееся в файле, в то время как усечение файла удаляет любое содержимое, уже находящееся в файле. Пример записи списка в файл с каждым элементом списка на новой строке приведен ниже. Чтобы запустить этот сценарий, скопируйте файлы simplewrite.py и writetext.txt в подкаталог unit3 вашего рабочего каталога.

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

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

где number.txt — это имя текстового файла, из которого мы хотим прочитать.

Одна небольшая сложность, с которой вы столкнетесь при попытке использовать приведенный выше код для создания сканера для чтения из файла, заключается в том, что сканеру требуется объект File, чтобы сообщить ему, где находится файл, из которого он должен читать. К сожалению, создание объекта File может вызвать исключение: если файл, который мы назвали, не существует, Java может сгенерировать исключение FileNotFound. NetBeans заметит эту возможность и заставит вас включить некоторый дополнительный код, который может перехватить это исключение и обработать его, если оно возникнет. Код ниже позаботится об этом:

Если мы попытаемся открыть несуществующий файл, команда new File("numbers.txt") создаст исключение, которое заставит нас войти в блок catch. В блоке catch мы можем сообщить объекту исключения, чтобы он выводил дополнительные сведения о том, что пошло не так, на панель вывода.

В дополнение к коду обработки исключений вам также потребуется разместить оператор импорта в верхней части вашей программы, чтобы импортировать класс File:

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

Чтобы создать текстовый файл в NetBeans, сначала щелкните проект правой кнопкой мыши на панели проектов. (Проект — это то, что рядом со значком кофейной чашки.) В контекстном меню выберите параметр «Создать/Другое».


В появившемся диалоговом окне выберите категорию «Другое» в нижней части списка категорий типов файлов, а затем выберите «Пустой файл» в списке типов файлов справа. Нажмите «Далее», чтобы перейти ко второй части диалогового окна «Новый файл».


В этом диалоговом окне вы вводите имя файла. При нажатии кнопки "Готово" создается и открывается текстовый файл, в который вы можете начать вводить данные.

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


Первый пример программы — чтение чисел из текстового файла

Вот код первого простого примера программы, который демонстрирует, как читать список целых чисел из текстового файла:

Эта программа открывает сканер для чтения из текстового файла с именем "numbers.txt". Если входного файла нет, программа напечатает сообщение и затем завершит работу, иначе мы перейдем к чтению данных из файла. Когда сканер открыт для файла, мы можем использовать обычную команду nextInt() для чтения следующего доступного целого числа из файла. Программа попытается прочитать все числа в текстовом файле и напечатать их на панели вывода.

Одна из сложностей с вводом из файлов заключается в том, что мы можем не знать заранее, сколько чисел содержится в текстовом файле. Чтобы помочь в этом, класс Scanner предлагает полезный метод hasNextInt(), который возвращает true, если из файла доступно больше чисел для чтения, и false, когда мы читаем до конца файла. Как видно из примера программы, мы можем использовать hasNextInt() для управления циклом while, который считывает числа из файла до тех пор, пока не будут прочитаны все числа.

Проблема поиска

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

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

Запись в файл

Иногда мы сталкиваемся с тем, что пишем программы, которые генерируют много вывода. Если мы хотим сохранить этот вывод, чтобы использовать его позже, мы можем сделать так, чтобы программа печатала свой вывод в файл, а не в панель вывода в NetBeans.

Python — один из самых популярных языков программирования в мире. Одна из причин его популярности заключается в том, что Python упрощает работу с данными.

Чтение данных из текстового файла — рутинная задача в Python. В этом посте мы рассмотрим самый быстрый способ чтения и разделения текстового файла с помощью Python. Разделение данных преобразует текст в список, что упрощает работу.

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

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

Введение в метод split()

Самый быстрый способ разделить текст в Python — использовать метод split(). Это встроенный метод, который полезен для разделения строки на отдельные части.

Метод split() возвращает список элементов в строке. По умолчанию Python использует пробелы для разделения строки, но вы можете указать разделитель и указать, какие символы использовать вместо этого.

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

Разделение текстового файла с помощью метода split()

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

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


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

В нашем случае текст разделен пробелами, что является поведением метода split() по умолчанию.

Пример 1. Разделение данных о сотрудниках с помощью Python

Вывод

Разделение строк запятой

Мы предоставляем необязательный разделитель для метода split(), чтобы указать, какой символ разделит строку. Разделителем по умолчанию является пробел.

В следующем примере мы будем использовать запятую для разделения данных результатов теста, считанных из файла.

Пример 2. Разделение оценок запятой

Метод strip() используется здесь для удаления символа новой строки (\n) с конца строк.

Вывод

Разделение текстового файла с помощью splitlines()

Метод splitlines() используется для получения списка строк в текстовом файле. В следующих примерах мы представим, что у нас есть веб-сайт, посвященный театральной труппе. Мы считываем данные скрипта из текстовых файлов и отправляем их на веб-сайт компании.

juliet.txt
О Ромео, Ромео, почему ты Ромео?
Откажись от своего отца и откажись от своего имени.
Или, если не хочешь, будь но поклялся в любви
И я больше не буду Капулетти.

Мы можем прочитать файл и разделить строки на список с помощью метода splitlines(). После этого можно использовать цикл for для печати содержимого текстовых данных.

Пример 3. Использование splitlines() для чтения текстового файла

Использование генератора для разделения текстового файла

В Python генератор — это специальная процедура, которую можно использовать для создания массива. Генератор похож на функцию, которая возвращает массив, но делает это по одному элементу за раз.

Генераторы используют ключевое слово yield. Когда Python встречает оператор yield, он сохраняет состояние функции до тех пор, пока генератор не будет вызван снова.

В следующем примере мы будем использовать генератор для чтения начала знаменитой речи Ромео из Ромео и Джульетты Шекспира. Использование ключевого слова yield гарантирует, что состояние нашего цикла while сохраняется во время каждой итерации. Это может быть полезно при работе с большими файлами.

romeo.txt
Но мягкий, какой свет бьется вон из того окна?
Это восток, а Джульетта — солнце.
Вставай, прекрасное солнышко , и убей завистливую луну,
Уже больную и бледную от горя
Что ты, ее служанка, гораздо прекраснее ее.

Пример 4: Разделение текстового файла с помощью генератора

Чтение данных файла с пониманием списка

Понимание списков Python предоставляет элегантное решение для работы со списками. Мы можем воспользоваться преимуществами более короткого синтаксиса, чтобы написать наш код с пониманием списка. Кроме того, операторы понимания списка обычно легче читать.

В наших предыдущих примерах нам приходилось использовать цикл for для чтения текстовых файлов. Мы можем заменить наш цикл for одной строкой кода, используя генератор списков.

Синтаксис понимания списка:
my_list = [выражение для элемента в списке]

После того как данные получены с помощью обработки списка, мы используем метод split() для разделения строк и добавления их в новый список.

Используя тот же файл romeo.txt из предыдущего примера, давайте посмотрим, как понимание списка может обеспечить более элегантный подход к разбиению текстового файла в Python.

Пример 5. Использование генератора списков для чтения данных файла

Что делать, если у нас есть большой файл, который мы хотели бы разделить на файлы меньшего размера? Мы разделяем большой файл в Python, используя циклы for и нарезку.

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

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

Разделить файл с нарезкой списка

Список можно разделить с помощью нарезки списка Python. Для этого мы сначала читаем файл с помощью метода readlines(). Затем верхняя половина файла записывается в новый файл с именем romeo_A.txt. Мы будем использовать нарезку списка в этом цикле for, чтобы записать первую половину исходного файла в новый файл.

Используя второй цикл for, мы запишем остальную часть текста в другой файл. Чтобы выполнить срез, нам нужен метод len(), чтобы найти общее количество строк в исходном файле.

Наконец, метод int() используется для преобразования результата деления в целое число.

Пример 6. Разделение одного текстового файла на несколько текстовых файлов

Запуск этой программы в том же каталоге, что и romeo.txt, создаст следующие текстовые файлы.

romeo_A.txt
Но мягкий, какой свет бьется вон из того окна?
Это восток, а Джульетта — солнце.

romeo_B.txt
Восстань, прекрасное солнце, и убей завистливую луну,
Уже больную и бледную от горя
Чтоб ты, ее служанка, искусство гораздо более справедливое, чем она.

Похожие сообщения

Мы увидели, как использовать метод split() для разделения текстового файла. Кроме того, наши примеры показали, как split() используется в тандеме с генераторами Python и списковым пониманием для более элегантного чтения больших файлов.

Использование многих встроенных методов Python, таких как split() и readlines(), позволяет нам быстрее обрабатывать текстовые файлы.Использование этих инструментов сэкономит нам время и усилия.

Если вы серьезно относитесь к освоению Python, рекомендуется потратить некоторое время на изучение того, как использовать эти методы для подготовки собственных решений.

Если вы хотите узнать больше о программировании на Python, посетите следующие учебные пособия от Python для начинающих.

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

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

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

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

Предпосылки

Для этого руководства у вас должен быть установлен Python 3, а также настроена локальная среда программирования на вашем компьютере. Если это не так, вы можете выполнить настройку, следуя соответствующему руководству по установке и настройке для вашей операционной системы:

Фон

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

Тип файла Описание
txt Обычный текстовый файл хранит данные, которые представляют только символы (или строки) и исключает любые структурированные метаданные
CSV В файле значений, разделенных запятыми, используются запятые (или другие разделители) для структурирования хранимых данных, что позволяет сохранять данные в формате таблицы
HTML Файл языка гипертекстовой разметки хранит структурированные данные и обычно используется с большинством веб-сайтов
JSON Обозначение объектов JavaScript — это простой и эффективный формат, что делает его одним из наиболее часто используемых форматов для хранения и передачи данных< /td>

В этом руководстве основное внимание уделяется формату файлов txt.

Шаг 1 — Создание текстового файла

Прежде чем мы сможем начать работать в Python, нам нужно убедиться, что у нас есть файл для работы. Для этого мы откроем текстовый редактор и создадим новый текстовый файл, назовем его days.txt .

В новом файле введите несколько строк текста. В этом примере давайте перечислим дни недели:

Теперь, когда у нас есть текстовый файл для обработки, мы можем начать наш код!

Шаг 2 — Открытие файла

Прежде чем мы сможем написать нашу программу, мы должны создать программный файл Python, поэтому создайте файл files.py в текстовом редакторе. Для простоты сохраните его в том же каталоге, что и файл days.txt: /users/sammy/ .

Чтобы открыть файл в Python, нам сначала нужно связать файл на диске с переменной в Python. Этот процесс называется открытием файла. Мы начинаем с того, что сообщаем Python, где находится файл. Местоположение вашего файла часто называется путь к файлу. Чтобы Python мог открыть ваш файл, ему требуется путь. Путь к нашему файлу days.txt: /users/sammy/days.txt. В Python мы создадим строковую переменную для хранения этой информации. В нашем скрипте files.py мы создадим переменную пути и зададим для этой переменной путь days.txt.

Затем мы воспользуемся функцией Python open(), чтобы открыть наш файл days.txt. Функция open() требует в качестве первого аргумента путь к файлу. Функция также позволяет использовать многие другие параметры. Однако наиболее важным является необязательный параметр mode. Режим — необязательная строка, указывающая режим, в котором открывается файл. Выбранный вами режим будет зависеть от того, что вы хотите сделать с файлом. Вот некоторые из наших вариантов режима:

  • 'r' : использовать для чтения.
  • 'w' : использовать для письма.
  • 'x' : используйте для создания и записи в новый файл
  • 'a' : используйте для добавления в файл.
  • 'r+' : используйте для чтения и записи в один и тот же файл

В этом примере мы хотим читать только из файла, поэтому будем использовать режим 'r'. Мы воспользуемся функцией open(), чтобы открыть файл days.txt и присвоить его переменной days_file .

После того, как мы открыли файл, мы можем прочитать его, что мы и сделаем на следующем шаге.

Шаг 3 — Чтение файла

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

Первая операция .read() возвращает все содержимое файла в виде одной строки.

Вторая операция .readline() возвращает следующую строку файла, возвращая текст до следующего символа новой строки включительно. Проще говоря, эта операция будет читать файл построчно.

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

Последняя операция .readlines() возвращает список строк в файле, где каждый элемент списка представляет одну строку.

О чем следует помнить при чтении из файлов: после того, как файл был прочитан с помощью одной из операций чтения, он не может быть прочитан снова. Например, если сначала запустить days_file.read(), а затем days_file.readlines(), вторая операция вернет пустую строку. Поэтому каждый раз, когда вы хотите прочитать файл, вам придется сначала открыть новую файловую переменную. Теперь, когда мы прочитали из файла, давайте научимся записывать в новый файл.

Шаг 4 — Запись файла

На этом шаге мы создадим новый файл с заголовком «Дни недели», за которым следуют дни недели. Во-первых, давайте создадим нашу переменную title.

Нам также нужно сохранить дни недели в строковой переменной, которую мы назовем days . Чтобы было легче следовать, мы включаем код из шагов, описанных выше. Мы открываем файл в режиме чтения, читаем файл и сохраняем возвращенный результат операции чтения в нашу новую переменную days .

Теперь, когда у нас есть переменные для заголовка и дней недели, мы можем начать запись в наш новый файл. Во-первых, нам нужно указать местоположение файла. Опять же, мы будем использовать каталог /users/sammy/. Нам нужно будет указать новый файл, который мы хотим создать. Итак, наш путь на самом деле будет /users/sammy/new_days.txt. Мы предоставляем информацию о нашем местоположении в переменной new_path. Затем мы открываем наш новый файл в режиме записи, используя функцию open() с указанным режимом 'w'.

Важно отметить, что если файл new_days.txt уже существовал до открытия файла, его старое содержимое было бы уничтожено, поэтому будьте осторожны при использовании режима 'w'.

Как только наш новый файл открыт, мы можем поместить в него данные, используя операцию записи .write() . Операция записи принимает один параметр, который должен быть строкой, и записывает эту строку в файл. Если вы хотите начать новую строку в файле, вы должны явно указать символ новой строки. Сначала мы записываем заголовок файла, а затем дни недели. Давайте также добавим некоторые печатные заявления о том, что мы пишем, что часто является хорошей практикой для отслеживания хода выполнения ваших скриптов.

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

Шаг 5 — Закрытие файла

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

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

Шаг 6. Проверка нашего кода

Прежде чем мы запустим наш код, давайте убедимся, что все выглядит хорошо. Конечный продукт должен выглядеть примерно так:

После сохранения кода откройте терминал и запустите скрипт Python, например:

Наш результат должен выглядеть следующим образом:

Теперь давайте еще раз проверим работоспособность нашего кода, открыв новый файл ( new_days.txt ). Если все прошло хорошо, когда мы откроем наш новый файл, он должен выглядеть так:

Ваш файл будет выглядеть так же или похоже — вы успешно прошли этот урок!

Заключение

В этом руководстве мы рассмотрели, как обращаться с текстовыми файлами и управлять ими в Python 3. Теперь вы можете открывать, читать, записывать и закрывать файлы в Python, а также продолжать работать со своими данными в Python.< /p>

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.

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