Рубрики
Без рубрики

Как изменить текстовый файл в Python?

Резюме: Вы можете изменить текстовый файл в Python, используя один из следующих способов: используя поиск () Методоразвитие FileInput Moduleusing Сплитлины () Метода модуль Regex и методы разделения () и INSERT () 👀 Проблема обзора: Учитывая текстовый файл; Как изменить это в Python? Сценарий 1: Вставьте новую строку в файл Рассмотрим … Как изменить текстовый файл в Python? Подробнее “

Автор оригинала: Shubham Sayon.

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

  • Используя Ищите () Метод
  • Используя FileInput Модуль
  • Используя Сплитлины () Метод
  • Используя Regex модуль и Сплит () и Вставить () методы

👀 Обзор

Проблема : Учитывая текстовый файл; Как изменить это в Python?

Сценарий 1: вставьте новую строку в файл

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

Данный файл:

Вы собираетесь вставить, “Freelancer.com” В списке приведен в указанном выше файле без удаления файла.

Сценарий 2: вставьте новое предложение в той же линии

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

Peter Piper picked a peck of pickled peppers.A peck of pickled peppers Peter Piper picked.Wheres the peck of pickled peppers Peter Piper picked.

Вы хотите вставить новое предложение (например, – Если Питер Пайпер выбрал клевение маринованных перцев ) после второго предложения. Итак, желаемый выход:

Peter Piper picked a peck of pickled peppers.A peck of pickled peppers Peter Piper picked.If Peter Piper picked a peck of pickled peppers.Wheres the peck of pickled peppers Peter Piper picked.

Итак, как вы собираетесь выполнить вышеуказанные задачи? 🤔

📝 Прежде чем мы продолжим дальше, пожалуйста Примечание что:

Вы не можете вставить строку в середину файла, не повторяя его. Вы можете добавить в файл или перезаписать часть этого, используя метод Seek (), который мы будем нырять через некоторое время; Но если вы хотите добавить что-то в начале или в середине файла, вам придется переписать его. Так просто! 😛 Это полностью операционная система и не имеет ничего общего с Python. Это так на всех языках.

Поэтому лучшая практика:

  • читать из файла,
  • сделать необходимые модификации,
  • Запишите это в новый файл (например, ‘ my_file.txt.tmp’) Отказ Это намного лучше, чем читать весь файл в память, особенно если файл большой.
  • Как только временный файл завершен, переименовать его к тому же названию, что и исходный файл.

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

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

Решения для сценария 1 👇

❒ Метод 1: Использование поиска () Метод

⁕ Определение и использование ищет () Метод

Ищите () Это метод файлов Python, который позволяет установить текущую позицию файла в потоке файлов. Это также возвращает новую позицию.

Синтаксис:

Давайте использовать Ищите () Метод изменять наш файл.

⁕ Решение

Случай 1: добавление к середина файла.

with open('test.txt', 'r+') as f:
    file = f.readlines()
    for line in file:
        if 'Upwork' in line:
            pos = line.index('Upwork')
            file.insert(pos + 1, 'Freelancer.com\n')
    f.seek(0)
    f.writelines(file)
f.close()

Выход:

Случай 2: Подготовка к Конец файл

Если вы просто хотите добавить в файл, то все, что вам нужно сделать, это открыть файл в Добавить Режим и вставьте необходимую строку.

with open('test.txt', 'a') as f:
    f.write('\nFreelancer.com')

Выход:

Случай 3: Подготовка к Начало файла

with open('test.txt', 'r+') as f:
    file = f.readlines()
    file.insert(0,'Freelancer.com\n')
    f.seek(0)
    f.writelines(file)

Выход

❒ Метод 2: Использование модуля FileInput

Другой обходной путь для изменения файла в том, что вы можете использовать FileInput Модуль стандартной библиотеки Python, которая позволяет переписать файл, установив в помещении Ключевой способ ключевых слов как Inplace = True Отказ

import fileinput

f = fileinput.input('test.txt', inplace=true)
for n, line in enumerate(f, start=1):
    if line.strip() == 'Finxter':
        print('Freelancer.com')
    print(line, end='')

Выход:

❒ Метод 3: Использование сплитлей () Метод

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

with open('test.txt', 'r+') as infile:
    data = infile.read()  # Read the contents of the file into memory.
    # Return a list of the lines, breaking at line boundaries.
    li = data.splitlines()
    index = li.index('Upwork')+1
    li.insert(index,'Freelancer.com')
    infile.seek(0)
    for item in li:
        infile.writelines(item+'\n')

Выход :

Решение сценария 2

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

import re

f = open("demo.txt", "r+")
contents = f.read()
text = re.split('([.])', contents)
text.insert(4, 'If Peter Piper picked a peck of pickled peppers.')
f.seek(0)
f.writelines(text)
f.close()

Выход:

Peter Piper picked a peck of pickled peppers.A peck of pickled peppers Peter Piper picked.If Peter Piper picked a peck of pickled peppers.Wheres the peck of pickled peppers Peter Piper picked.

👉 Возможно, вы захотите взглянуть на другой сценарий, описанный в следующем посте:

Как искать и заменить строку в файл в Python?

Заключение

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

  • Использование метода ищет ()
  • Использование модуля FileInput
  • Используя сплитлины () Метод
  • Использование модуля Regex и методам разделения () и вставки ()

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

Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.

Вы можете связаться со мной @:

Оригинал: “https://blog.finxter.com/how-to-modify-a-text-file-in-python/”