Как считать строку в python
Перейти к содержимому

Как считать строку в python

  • автор:

Файловый ввод-вывод¶

Открыть файл file_path в режиме mode . Функция возвращает file object . Полная сигнатура функции приведена в официальной документации: open. Режим может принимать значения:

f. write ( text ) ¶

Записать строку text в файл.

Прочитать все данные из файла

Пример работы с файлом:

# Открываем файл для записи out_file = open('data.txt', 'w') # Пишем в файл две строки out_file.write('Hello\n') out_file.write('World\n') # Закрываем файл out_file.close() # Снова открываем этот же файл, но уже для чтения in_file = open('data.txt', 'r') # Файл — итерируемый объект. Следовательно, для # его построчного чтения можно использовать цикл for for line in in_file: print(f'Got line: line>') in_file.close() 

Задачи¶

  1. Написать программу, которая будет получать у пользователя строку и записывать её в файл “data.txt”
  2. Разработать приложение, которое записывает в файл все строки, введенные пользователем. Признак конца ввода — пустая строка. Пример:
Введите имя файла: data.txt Начните вводить строки > one > two > three > Файл записан. 

После выполнения программы должен появиться файл data.txt , содержащий три строки:

one two three 
Введите имя файла: data.txt 1 one 2 two 3 three 

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

Введите имя файла: data.txt 1 one 2 two 3 three 
one two three four five six seven eight nine ten 

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

Введите имя входного файла: data.txt Введите максимальное количество строк: 3 

После выполнения программы должны быть созданы файлы 1.txt , 2.txt и так далее. В файле 1.txt будут сроки:

one two three 

В файле 2.txt :

four five six 

Дополнительные задачи¶

  1. Разработайте приложение, которое выводит N первых строк файла.
  2. Разработайте приложение, которое выводит N последних строк файла.

© Copyright Revision d00c0df4 .

Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: latest

Versions latest Downloads html On Read the Docs Project Home Builds Free document hosting provided by Read the Docs.

Как прочитать файл в Python

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

На самом деле существует несколько способов прочитать текстовый файл в Python. Функции чтения содержат различные методы, read(), readline() и readlines().

read ([число]) : Возвращает указанное количество символов из файла. если он опущен, он будет читать все содержимое файла.

readline() : Возвращает следующую строку файла.

readlines() : чтение всех строк в виде списка строк в файле

Считывание всего содержимого файла

with open("my_file.txt", "r") as my_file: str = my_file.read() print(str)
This is first line This is second line This is third line This is fourth line

Чтение только одной строки

with open("my_file.txt", "r") as my_file: str = my_file.readline() print(str)
This is my first line

Чтение данных с использованием размера

with open("my_file.txt", "r") as my_file: str = my_file.read(38) #читать с размером файла print(str)
This is my first line This is second line

Чтение всех строк в виде массива

with open("my_file.txt", "r") as my_file: str = my_file.readlines() print(str)
['This is first line\n', 'This is second line\n', 'This is third line\n', 'This is fourth line']

Прочитать файл по строкам в Python

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

with open("my_file.txt", "r") as my_file: for line in my_file: print(line)
This is first line This is second line This is third line This is fourth line

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

Метод Python tell()

Метод tell() возвращает текущую позицию указателя чтения / записи файла внутри файла.

with open("my_file.txt", "r") as my_file: str = my_file.readline() print(str) # Get the current cursor position of the file. pnt = my_file.tell() print(pnt)
This is first line 20

Метод поиска Python()

Метод seek() устанавливает текущее положение файла в смещении.

with open("my_file.txt", "r") as my_file: my_file.seek(20) str = my_file.readline() print(str) # bring file cursor to initial position my_file.seek(0) str = my_file.readline() print(str)
This is first line This is second line

Разделение строк из текстового файла в Python

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

with open("my_file.txt", "r") as my_file: for line in my_file: str = line.split() print(str)
['This', 'is', 'first', 'line'] ['This', 'is', 'second', 'line'] ['This', 'is', 'third', 'line'] ['This', 'is', 'fourth', 'line']

Как считать данные из одной строки в Python 3?

Начал изучать Python и столкнулся с проблемой считывания (работаю в PyCharm).
Можно ли считывать данные как из одного потока в С++?

Входные данные:
>>>3 4
>>>2 1 4
>>>3 1 3 1
>>>1 2

И сразу хочу посчитать, сколько одинаковых чисел (просто инкрементирую элементы равные числу).

P.S. записывать входные данные не хотелось бы

  • Вопрос задан более трёх лет назад
  • 2668 просмотров

Python: потоковый ввод stdin

В общем (классическом) виде чтение с помощью stdin производится следующим образом:

import sys for line in sys.stdin: # rstrip('\n') "отрезает" от строки line идущий справа символ # перевода строки, ведь print сам переводит строку print(line.rstrip('\n'))

Если запустить эту программу, она будет работать вечно. Чтобы показать, что ввод закончен, пользователю недостаточно нажать Enter — компьютер не знает, завершил пользователь работу или будет еще что-то вводить (при этом Enter превратится в пустую строку). Вместо этого надо нажать Ctrl + D (если работаете в консоли Linux или IDE PyCharm) либо Ctrl + Z, затем Enter (если работаете в консоли Windows).

Если вы работаете в IDE Wing, кликните правой кнопкой мыши и выберите Send EOF, затем нажмите Enter. Это запишет в поток ввода специальный символ EOF (end of file), который отмечает конец ввода.

Через sys.stdin можно вычитать всё, что попадает через ввод в список (количество строк ввода заранее неизвестно):

data = list(map(str.strip, sys.stdin))

Все строки можно считать (с сохранением символов перевода строки) в список вот таким образом:

data = sys.stdin.readlines()

Cчитать многострочный текст из стандартного потока ввода в текстовую переменную можно вот так:

str_data = sys.stdin.read()

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *