- Прочитать файл, проверить содержимое и отредактировать
- Решение
- Как прочитать текстовый файл в Python
- Как открыть текстовый файл в Python с помощью open()
- Имена файлов и правильные пути
- Необязательный параметр режима в open()
- Дополнительные параметры для функции open() в Python
- Метод readable(): проверка доступности файла для чтения
- Что такое метод read() в Python?
- Что такое метод close() в Python?
- Как использовать ключевое слово with в Python
- Что такое метод readline() в Python?
- Что такое метод readlines() в Python?
- Как прочитать текстовый файл при помощи цикла for
- Заключение
Прочитать файл, проверить содержимое и отредактировать
Кратко:
У нас создается Logфайл — ruta.txt путь к которому знаем, текст которого при создании всегда разный, файл нужно прочесть, и если находим точное совпадение строки номер 3 (In God i trust), значит файл нужный, работаем дальше с ним. Если нету такой строки, то файл удаляем. После генерации нового файла повторяем цикл поиска нужной строки.
Задача 1:
По известному нам пути генерируется файл «/homies/kijon/work/ruta.txt» в искомом нами файле строка номер 3 имеет вид In God i trust
1 2 3 4 5 6 7 8 9 10 11 12
# -*- coding: UTF-8 -*- basefile = '/homies/kijon/work/ruta.txt' timelogruta = '/homies/kijon/work/timelog.txt' import sys temp2 = sys.stdout.write sys.stdout = open(timelogruta, 'a') #открываем файл timelog.txt для записи туда строки номер 3 из файла ruta.txt with open(basefile, 'r') as f: data = f.readlines()[3] #читаем строку номер 3 print data sys.stdout.close() sys.stdout = temp2
#Далее предполагалось проверять полученную строку в файле timelog.txt для проверки на совпадение строки вида In God i trust — если значение совпадет, то данный проверяемый файл ruta.txt тот, что нам нужен, если нет, то мы должны его удалить, и начать круг заново.
#как это сделать, не могу сообразить.
Задача 2:
После того как мы нашли искомый файл ruta.txt, в нем нужно будет заменить еще несколько строк, номера которых мне известно.
а) К примеру прочесть строку 10 и заменить ею строку 11
б) Прочесть строку 20 и заменить ею строку 21
Записать в текстовый файл содержимое Edit, и прочитать содержимое файла в Memo
Создать приложение которое создает текстовый файл текстовый файл text.txt записывает в него текст.
Прочитать содержимое dbf (файл SER.Dbf). И вывести содержимое нескольких полей
Всем привет) Можете пожалуйста помочь, может кто хорошо разбирается в работе с dbf файлами.
Отредактировать и переписать в другой файл содержимое данного файла
В файле содержатся данные о книгах: название, фамилия первого автора, количество экземпляров и.
Прочитать файл и вывести его содержимое на экран
Программа выводит нужный текст из программы. Ну при этом еще выдает ошибку, как ее убрать? .model.
Сообщение было отмечено sayiko как решение
Решение
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
#!/usr/bin/env python # -*- coding: utf-8 -*- import os def replace_word(): temp = 0 temp_list = [] word = "строка-образец" filename = 'example.txt' with open(filename, 'r') as file: for item in file: temp += 1 if temp == 3: if word in item: print ("ok") else: print ("error") os.remove(filename) return 0 temp_list.extend([item]) temp_list[5] = temp_list[3] #здесь указываем какую строку заменить with open(filename, 'w') as file: for item in temp_list: file.write(item) if __name__ == '__main__': replace_word()
Сообщение от ampermetr
зарезервировано в python2.
ограничений не было в задаче, поэтому
with open('input.txt') as in_file, open('output.txt', 'w') as out_file: content = in_file.readlines() if content[2] == 'In God i trust\n': content[10] = content[9] content[20] = content[19] out_file.writelines(content)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
#!/usr/bin/env python # -*- coding: utf-8 -*- import os def replace_word(): temp = 0 temp_list = [] word = "строка-образец" filename = 'example.txt' with open(filename, 'r') as file: for item in file: temp += 1 if temp == 3: if word in item: print ("ok") else: print ("error") file.close() # . Вот тут, видимо в спешке, была пропущена строка, без нее файл не удаляется в следующей строке os.remove(filename) return 0 temp_list.extend([item]) temp_list[5] = temp_list[3] #здесь указываем какую строку заменить with open(filename, 'w') as file: for item in temp_list: file.write(item) if __name__ == '__main__': replace_word()
ampermetr — благодарю вас, за то, что поняли именно полно мою проблему в виде Задачи 1 и Задачи 2. Вы решили именно так, как я хотел:
Определили по заданной строке на совпадение, нужный нам файл, сделали замену строк выбранной по номеру строки, таким же образом я смогу менять больше строк в этом же документе, а если искомая строка не подтверждает нужный документ, мы его удаляем.
Jabbson — Ваш пример, работает в точности как я предполагал его решить изначально и показывает решение части моей задачи 1 и задачи 2 по замене строк, Но копирует все данные из одного в другой текстовый документ с которым и работаем потом, что я понял лишнее, можно и без этого. Реализован способ чуть иначе, что в особенности дает очередную возможность познать разные способы решения. Просто изначальный ход моей мысли, ввиду начинаний изучения Python 2.7 полон лишних действий.
Благодарю вас за быстрые и качественные ответы, удачи вам и процветания в ваших делах.
Сохранить содержимое ListBox в файл и прочитать обратно
Как сделать что бы при нажатии на кнопку в лист бокс записывался текст из текстбокс.И сохранялось.
Прочитать файл, и вывести содержимое файла в 1-ю видеостраницу
Здравствуйте уважаемые! Решил попробовать небольшой примерчик на основе выученного материала, и.
Как прочитать файл и вывести его содержимое?
В ссылках, которые я нахожу по данной теме, всегда говорится о поиске или сортировке данных в.
Прочитать файл по ссылке и записать его содержимое в переменную BYTE
Здравствуйте! Нужна помощь. :wall: Всё ещё ломаю голову и не могу это реализовать, постепенно.
Открыть файл, прочитать его, и вывести содержимое в виде массива
Здравствуйте ! Я начинающий программист. пожалуйста подскажите в чём состоит ошибка. я подозреваю.
Как прочитать текстовый файл в Python
В Python есть несколько способов прочитать текстовый файл. В этой статье мы рассмотрим функцию open() , методы read() , readline() , readlines() , close() и ключевое слово with .
Как открыть текстовый файл в Python с помощью open()
Если вы хотите прочитать текстовый файл с помощью Python, вам сначала нужно его открыть.
Вот так выглядит основной синтаксис функции open() :
open("name of file you want opened", "optional mode")
Имена файлов и правильные пути
Если текстовый файл, который нужно открыть, и ваш текущий файл находятся в одной директории (папке), можно просто указать имя файла внутри функции open() . Например:
На скрине видно, как выглядят файлы, находящиеся в одном каталоге:
Но если ваш текстовый файл находится в другом каталоге, вам необходимо указать путь к нему.
В этом примере файл со случайным текстом находится в папке, отличной от той, где находится файл с кодом main.py:
В таком случае, чтобы получить доступ к этому файлу в main.py, вы должны включить имя папки с именем файла.
Если путь к файлу будет указан неправильно, вы получите сообщение об ошибке FileNotFoundError .
Таким образом, чтобы указать путь к файлу правильно, важно отслеживать, в каком каталоге вы находитесь.
Необязательный параметр режима в open()
При работе с файлами существуют разные режимы. Режим по умолчанию – это режим чтения.
Вы также можете опустить mode= и просто написать «r» .
Существуют и другие типы режимов, такие как «w» для записи или «a» для добавления. Мы не будем вдаваться в подробности о других режимах, потому что в этой статье сосредоточимся исключительно на чтении файлов.
Полный список других режимов можно найти в документации.
Дополнительные параметры для функции open() в Python
Функция open() может также принимать следующие необязательные параметры:
Если вы хотите узнать больше об этих опциональных параметрах, можно заглянуть в документацию.
Метод readable(): проверка доступности файла для чтения
Если вы хотите проверить, можно ли прочитать файл, используйте метод readable() . Он возвращает True или False .
Следующий пример вернет True , потому что мы находимся в режиме чтения:
file = open("demo.txt") print(file.readable())
Если бы мы изменили этот пример на режим «w» (для записи), тогда метод readable() вернул бы False :
file = open("demo.txt", "w") print(file.readable())
Что такое метод read() в Python?
Метод read() будет считывать все содержимое файла как одну строку. Это хороший метод, если в вашем текстовом файле мало содержимого .
В этом примере давайте используем метод read() для вывода на экран списка имен из файла demo.txt:
file = open("demo.txt") print(file.read())
Запустим этот код и получим следующий вывод:
# Output: # This is a list of names: # Jessica # James # Nick # Sara
Этот метод может принимать необязательный параметр, называемый размером. Вместо чтения всего файла будет прочитана только его часть.
Если мы изменим предыдущий пример, мы сможем вывести только первое слово, добавив число 4 в качестве аргумента для read() .
file = open("demo.txt") print(file.read(4)) # Output: # This
Если аргумент размера опущен или число отрицательное, то будет прочитан весь файл.
Что такое метод close() в Python?
Когда вы закончили читать файл, необходимо его закрыть. Если вы забудете это сделать, это может вызвать проблемы и дальнейшие ошибки.
Вот пример того, как закрыть файл demo.txt:
file = open("demo.txt") print(file.read()) file.close()
Как использовать ключевое слово with в Python
Один из способов убедиться, что ваш файл закрыт, – использовать ключевое слово with . Это считается хорошей практикой, потому что файл закрывается не вручную, а автоматически. Более того, это просто крайне удобно и защищает вас от ошибок, которые могут возникнуть, если вы случайно забудете закрыть файл.
Давайте попробуем переписать наш пример, используя ключевое слово with :
with open("demo.txt") as file: print(file.read())
Что такое метод readline() в Python?
Этот метод читает одну строку из файла и возвращает ее.
В следующем примере у нас есть текстовый файл с двумя предложениями:
This is the first line This is the second line
Если мы воспользуемся методом readline() , он выведет нам только первое предложение нашего файла.
with open("demo.txt") as file: print(file.readline()) # Output: # This is the first line
Этот метод также принимает необязательный параметр размера. Мы можем изменить наш пример, добавив число 7. В таком случае программа считает и выведет нам только фразу This is :
with open("demo.txt") as file: print(file.readline(7))
Что такое метод readlines() в Python?
Этот метод читает и возвращает список всех строк в файле.
Предположим, у нас есть текстовый файл demo.txt со списком покупок:
Grosery Store List: Chicken Mango Rice Chocolate Cake
В следующем примере давайте выведем наши продукты в виде списка с помощью метода readlines() .
with open("demo.txt") as file: print(file.readlines()) # Output: # ['Grocery Store List:\n', 'Chicken\n', 'Mangos\n', 'Rice\n', 'Chocolate Cake\n']
Как прочитать текстовый файл при помощи цикла for
В качестве альтернативы методам чтения можно использовать цикл for .
Давайте распечатаем все элементы файла demo.txt, перебирая объект в цикле for .
with open("demo.txt") as file: for item in file: print(item)
Запустим наш код и получим следующий результат:
# Output: # Grocery Store List: # Chicken # Mango # Rice # Chocolate Cake
Заключение
Итак, если вы хотите прочитать текстовый файл в Python, вам сначала нужно его открыть.
open("name of file you want opened", "optional mode")
Если текстовый файл и ваш текущий файл, где вы пишете код, находятся в одной директории, можно просто указать имя файла в функции open() .
Если ваш текстовый файл находится в другом каталоге, вам необходимо указать правильный путь к нему.
Функция open() принимает необязательный параметр режима. Режим по умолчанию – чтение ( «r» ).
Чтобы проверить, можно ли прочитать текстовый файл, вы можете использовать метод readable() . Он возвращает True , если файл можно прочитать, или False в противном случае.
Метод read() будет читать все содержимое файла как одну строку.
Также, когда вы закончите читать файл, не забудьте закрыть его. Один из способов убедиться, что ваш файл закрыт, – использовать ключевое слово with . Оно закрывает файл автоматически и вам не нужно беспокоиться об этом.
Метод readline() будет считывать только одну строку из файла и возвращать ее.
Метод readlines() прочитает и вернет все строки в файле в виде списка.
Также для чтения содержимого файлов можно использовать цикл for .
Надеемся, вам понравилась эта статья. Желаем удачи в вашем путешествии по миру Python!