Как добавить в файл

Обновлено: 03.07.2024

Добавление определяется как «добавление чего-то нового к существующему в качестве вложения или дополнения». Иногда вам нужно добавить текст в уже существующий текстовый файл. Этот текст может исходить из любого источника, например строки текста из командной строки, вывода команды или другого текстового файла.

Самый простой способ добавить текст – использовать оператор ‘>>’ из командной строки Linux. Существует два разных оператора, которые перенаправляют вывод в файлы: ‘>’ и ‘>>’, о которых вам нужно знать.

‘>‘ используется для удаления предыдущего содержимого перед добавлением текста, а ‘>>‘ добавляет текст при сохранении содержимого. Кроме того, он всегда добавляет текст в конец файла. Итак, если вы хотите добавить текст, вы должны использовать оператор «>>» в своих командах. Мы увидим несколько примеров того, как это делается.

Добавить одну строку текста

Если вы просто хотите быстро добавить небольшую строку текста, вы можете использовать команду echo из командной строки.

bash$ echo "Это всего лишь одна строка текста" >> ./path/filename.txt

Добавить текст из командной строки (несколько строк)

Если вы хотите добавить длинную строку текста или несколько строк, использование команды echo может быть громоздким. В этом случае вместо этого вы можете направить стандартный ввод (stdin) в файл.

При использовании следующей команды команда cat считывает данные из стандартного ввода, а оператор «>>» перенаправляет стандартный ввод в файл, что означает, что вы не возвращаться обратно к подсказке, пока вы не выйдете (закроете поток) с помощью Ctrl-D

bash$ cat >> ./path/filename.txt


Примечание: используйте Ctrl-D для выхода из режима ввода

Добавить текст из другого файла

Текст, который вы хотите добавить, может быть взят из другого текстового файла. Вы можете использовать команду cat вместе с оператором добавления для добавления содержимого.

bash$ cat myfile.txt >> ./path/filename.txt

Вы также можете использовать операторы cat и append для объединения нескольких файлов. Если вы хотите добавить только определенные строки из текстового файла в выходной файл, вы можете использовать команду grep для фильтрации вывода cat, а затем добавить результаты в файл.

Например, следующая команда добавит все строки, содержащие слово chocolate, в файл chocolate.txt.

bash$ cat myfile.txt | grep -i "шоколад" >> ./path/chocolate.txt

Добавить выходные данные команды в файл

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

дата bash$ >> ./path/filename.txt

Приведенная выше команда добавляет выходные данные команды date к имени файла filename.txt. Вы также можете использовать любую другую команду, например time, ls, find или grep.

Использование sed

Использование оператора «>>» (дополнение) — это самый простой способ добавить текст в файл из командной строки. Другой вариант, который у вас есть, — это использование команды sed.

В следующем примере будет добавлена ​​строка «Почему перенаправление? Я могу использовать sed». в файл filename.txt.

bash$ sed -i "$ a\Зачем перенаправление? Я могу использовать sed." ./путь/имя_файла.txt

Единственным преимуществом sed является то, что вы фактически используете его для добавления текста в начало, а не для добавления. Prepend добавит новый текст в начало файла, а append добавит его в конец или конец файла.

Чтобы добавить текст к файлу, вы можете использовать параметр 1i, как показано в примере ниже.

bash$ sed -i '1i Это начало файла' ./path/filename.txt

Команда sed — действительно мощный инструмент для работы с текстом. Стоит прочитать документацию, чтобы найти все его функции.


сообщить об этом объявлении

Иногда нам нужно работать с файлом для целей программирования, и новую строку требуется добавить в конец файла. Эту задачу добавления можно выполнить с помощью команд «echo» и «tee». Использование «>>» с командой «echo» добавляет строку в файл. Другой способ — использовать команды «echo», «pipe(|)» и «tee» для добавления содержимого в файл. Как эти команды можно использовать в сценарии bash, показано в этой статье.

Создайте текстовый файл с именем books.txt со следующим содержимым, чтобы выполнить примеры, показанные в следующей части этой статьи.

книги.txt:

Пример 1: добавить строку в файл с помощью команды «echo» и символа «>>»

В следующем скрипте существующий файл books.txt назначается переменной, имени файла, и строковое значение будет приниматься пользователем в качестве входных данных для добавления в конец файла. Если входное значение не пустое, команда «echo» добавит значение в файл books.txt, используя символ «>>».

Вывод:

«Learning JQuery» воспринимается как новое текстовое значение в выходных данных, которое добавляется в конец файла.


Пример 2. Добавление строки в файл с помощью команды «printf» и символа «>>»

Символ «>>» можно использовать с командой «printf» для добавления форматированного содержимого в файл. Как и в предыдущем примере, имя файла и строковые значения присваиваются переменным, имени файла и новому тексту. Затем команда «printf» перенаправит значение newtext с другим текстом в конец файла books.txt.

Вывод:

«Веб-сайт от WordPress» воспринимается как новое текстовое значение в выходных данных, которое добавляется в конце файла.


Пример 3: добавить строку в файл с помощью команды `tee`

tee — еще одна полезная команда для добавления любой строки в файл. В следующем скрипте имя файла и новые текстовые значения назначаются так же, как и в предыдущих примерах. Если текстовое значение не пусто, то команда «echo» отправит значение команде «tee» с помощью символа «|». Параметр «-a» используется здесь с командой «tee», чтобы добавить полученное входное значение в файл books.txt. ‘/dev/null’ используется в скрипте для предотвращения отображения вывода в терминале.

Вывод:

«Изучение CSS3» воспринимается как новое текстовое значение в выводе, которое добавляется в конец файла.


Вывод:

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

Об авторе

Фахмида Есмин

Я веду курсы веб-программирования. Мне нравится писать статьи или учебные пособия на различные темы в области ИТ. У меня есть канал на YouTube, на котором публикуются различные учебные пособия по Ubuntu, Windows, Word, Excel, WordPress, Magento, Laravel и т. д.: Справка Tutorials4u.

В этой статье мы обсудим, как добавить текст или новые строки в существующий файл с помощью Python.


Чтобы добавить какой-либо текст в файл в конце, нам сначала нужно открыть файл с режимом доступа «a»,

В режиме доступа к файлу «a» функция open() сначала проверяет, существует ли файл. Если файл не существует, то он создает пустой файл и открывает его. Принимая во внимание, что если файл уже существует, он открывает его. В обоих случаях он возвращает файловый объект и имеет курсор записи, указывающий на конец открытого файла. Теперь, если вы что-нибудь напишете в файл, используя этот файловый объект, оно будет добавлено в конец.

Давайте воспользуемся этим, чтобы добавить текст в конец файла,

Добавить текст в файл в Python

Предположим, у нас есть файл «sample.txt», и его содержимое:

Теперь добавим текст 'hello' в конец этого файла,

Содержимое файла «sample.txt» теперь будет,

Мы открыли файл «sample.txt» в режиме добавления, т. е. с использованием режима доступа «a». Поскольку курсор указывал на конец файла в файловом объекте, поэтому, когда мы передавали строку в функцию write(), она добавлялась в конец файла. Итак, наш текст «привет» добавляется в конец файла «sample.txt».

Добавить текст в файл в Python, используя оператор with open

Мы можем открыть файл в режиме доступа с добавлением, т. е. ‘a’, также используя оператор with open, а затем мы можем добавить текст в конец файла.
Например,

Содержимое файла «sample.txt» теперь будет,

Текст «привет» снова добавляется в конец файла «sample.txt».
Основное отличие этого подхода от предыдущего заключалось в том, что нам не нужно явно закрывать файл. Он автоматически закрывается, когда блок выполнения «с оператором» заканчивается.

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

Добавить данные в файл в виде новой строки в Python

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

  • Откройте файл в режиме добавления ("a"). Курсор указывает на конец файла.
  • Добавить ‘\n’ в конец файла с помощью функции write()
  • Добавить указанную строку в файл с помощью функции write().
  • Закройте файл

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

Сначала он записывает пустую строку, а затем нашу строку. Но в данном случае нормально было только добавление строки, нам не нужно было писать ‘\n’ перед этим.

Итак, наш окончательный подход должен быть таким,

  • Откройте файл в режиме добавления и чтения ("a+"). Курсор чтения и записи указывает на конец файла.
  • Переместите курсор чтения в начало файла.
  • Прочитайте текст из файла и проверьте, пуст файл или нет.
  • Если файл не пустой, добавьте ‘\n’ в конец файла с помощью функции write().
  • Добавить заданную строку в файл с помощью функции write().
  • Закройте файл

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

Предположим, у нас есть файл «sample2.txt» со следующим содержимым,

Добавить новую строку в файл,

Содержимое файла ‘sample2.txt’ сейчас,

В конец файла добавляется новая строка.

Режим доступа к файлу «a+» создает файл, который открывается как для чтения, так и для записи. Также, если файла не существует, то он тоже создает файл.
Изначально курсоры чтения и записи будут указывать на конец файла. Мы переместили курсор чтения в начало файла, чтобы проверить, является ли файл пустым или нет.
Если файл не пустой, сначала добавьте «\n» в конец файла, а затем добавьте строку.

Давайте переместим код в отдельную функцию,

Давайте воспользуемся этой функцией, чтобы добавить еще одну строку в несуществующий файл

Содержимое файла «sample3.txt» теперь будет,

Подтверждает, что перед записью новой строки не было добавлено "\n", поскольку файл уже был пуст.

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

Содержимое файла «sample3.txt» теперь будет,

Поскольку файл уже существует и имеет содержимое; поэтому он сначала добавил «\n» в файл, а затем нашу заданную строку.

Добавить несколько строк в файл в Python

Предположим, у нас есть список строк,

Теперь мы хотим добавить каждый элемент в список в виде строки в файле. Как это сделать?

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

  • Откройте файл в режиме добавления и чтения ("a+"). Курсор чтения и записи указывает на конец файла.
  • Переместите курсор чтения в начало файла.
  • Прочитайте текст из файла и проверьте, пуст файл или нет.
  • Если файл не пустой, установите для appendEOL значение True, иначе False
  • Теперь для каждого элемента в списке
    • Если его первый элемент в List и appendEOL имеет значение False
      • Не добавляйте «\n» в конец файла с помощью функции write().
      • Добавить ‘\n’ в конец файла с помощью функции write().

      По сути, нам не нужно сначала писать ‘\n’, если файл пуст.

      Функция для добавления нескольких строк в файл

      Теперь воспользуемся этой функцией.
      Предположим, что содержимое файла «sample3.txt» следующее:

      У нас есть список строк,

      Добавить все строки в этом списке отдельными строками в конец файла «sample3.txt»

      Теперь содержимое файла «sample3.txt» такое,

      Он добавил все строки в заданном списке в качестве новых строк в файле.

      Полный пример выглядит следующим образом:

      Учебники по Pandas – изучите анализ данных с помощью Python

      Вы хотите сделать карьеру в области Data Science с помощью Python?

      Наука о данных — это будущее, и оно уже наступило. На сегодняшний день специалисты по данным являются самыми востребованными профессионалами. Чтобы стать хорошим Data Scientist или сменить профессию в Data Science, нужно обладать нужным набором навыков. Мы составили список лучших профессиональных сертификатов в области науки о данных с помощью Python. Эти курсы научат вас инструментам программирования для науки о данных, таким как Pandas, NumPy, Matplotlib, Seaborn, и тому, как использовать эти библиотеки для реализации моделей машинного обучения.

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

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

      Присоединяйтесь к сообществу разработчиков Python в LinkedIn

      Похожие записи

      Вставить элемент в начало массива NumPy

      Как добавить столбцы в массив NumPy в Python

      Как объединить массивы NumPy в Python?

      Добавить строку в массив NumPy в Python

      Добавить элементы в конец массива в Python

      Как удалить столбцы из массива NumPy

      Как удалить строки из массива NumPy

      Удалить последний элемент из массива NumPy в Python

      Удалить первый элемент из массива NumPy в Python

      Проверьте, является ли двумерный массив NumPy или матрица симметричным

      Редактировать значения ячеек в CSV-файлах с помощью Pandas в Python

      Сортировка массива NumPy в порядке убывания в Python

      Преобразование списка в набор в Python

      Добавление двух элементов списка в Python

      Добавление одного списка к другому списку в Python

      Удалить дубликаты из массива NumPy в Python

      Проверить, существует ли столбец в Pandas DataFrame

      Проверить, равны ли два массива NumPy в Python

      Pandas: проверьте, все ли значения в столбце равны нулю

      Проверить, все ли значения в столбце являются NaN в Pandas

      2 мысли о «Как добавить текст или строки в файл в python?»

      Спасибо. Ваш урок потрясающий!

      Большое спасибо! Это очень помогло.

      Оставить комментарий Отменить ответ

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

      Реклама

      Реклама

      Последние публикации

      Учебники по Python

      Что-то ищу

      Учебники по C++/C++11

      Условия использования

      Условия и политика

      Учебники по Python

      Избранные сайты

      Отказ от ответственности

      Условия и политика

      Авторское право © 2022 thisPointer

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

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

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

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

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

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

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

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

      КАК добавить текст до конца файла в Linux

      Если вы хотите узнать, как добавить текст в конец файла в Linux, то вы попали по адресу. Ребята, здесь мы обсудим различные способы добавления текста в файл в Linux.

      Оглавление

      Распространенные сценарии добавления текста в файл

      • добавление журналов в файл журнала, обычно выполняемое серверами.
      • сохранение вывода команды в файл. Например, сохранение вывода скрипта в файл для последующей отладки.
      • копирование содержимого файла в другой файл. Например, создание файла резервной копии перед внесением каких-либо изменений в файл.
      • объединение содержимого группы файлов с другим файлом. Например, объединение нескольких CSV-файлов для создания нового CSV-файла.

      Команды Linux для добавления текста в файл

      Мы используем оператор перенаправления (>>) для добавления данных в существующий текстовый файл. Однако нам нужно предоставить данные, которые будут добавлены в файл. Некоторые из распространенных команд, которые используются вместе с оператором >>, это cat, echo, print и т. д.

      Давайте рассмотрим несколько примеров добавления текста в файл в Linux.

      1.Добавление текста в конец файла с помощью операторов перенаправления

      Добавление текста возможно с помощью операторов «>» и «>>». Это операторы перенаправления вывода. Перенаправление — это отправка вывода в любой файл.

      Существует два типа оператора перенаправления: перенаправление ввода и перенаправление вывода. “ ” называется перенаправлением вывода.

      Для вашего понимания, вот как выглядит перенаправление ввода.

      Перенаправление ввода

      Перенаправление ввода

      Здесь ввод из файла, т. е. linux.txt, отправляется команде tr через оператор перенаправления ввода. Он будет печатать символы в верхнем регистре, как показано выше на изображении.

      Говоря об операторе перенаправления вывода, он используется для отправки вывода команды в файл. Это можно сделать с помощью любой команды cat или echo. Давайте разберемся на следующем примере,

      Text Step1

      Текст с использованием оператора >

      Использование оператора «>» отправит вывод команды cat в файл linux.txt. Кроме того, я использовал команду cat без оператора «>», потому что здесь мы не собираемся добавлять текст в конец файла, а просто отображаем содержимое файла.

      Для дальнейших примеров мы рассмотрим файл linux.txt.

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

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

      2. Использование команды cat с оператором перенаправления (>>)

      Оператор «>>» используется для добавления текста в конец файла, в котором уже есть содержимое. Мы воспользуемся командой cat и добавим ее в наш файл linux.txt.

      Представьте, что мы хотим добавить текст в конец файла, например linux.txt, как показано выше. Давайте посмотрим на команду ниже:

      Добавление текста с помощью команды Cat, шаг 2

      Добавить текст с помощью команды Cat

      Как показано выше, входной текст отправляется в файл, например linux.txt. МЫ снова используем команду cat с оператором добавления для печати текста, как показано в примере выше.

      Вы можете видеть, что текст был добавлен в конце файла. Помните, что при добавлении текста с помощью оператора «>>» через команду cat вы будете работать в режиме редактора. Чтобы сохранить текст и завершить добавление, вы можете нажать Ctrl+D.

      3. Эхо-команда Linux с >>

      Команда echo используется для вывода текста, вывода значения переменной и т. д. Если вы хотите получить подробные знания, вы можете проверить руководство по команде echo в Linux. При использовании команды echo вам необходимо добавить текст в кавычки. Вывод команды echo будет перенаправлен через оператор «>>» в файл. Давайте посмотрим на приведенную ниже команду.

      Добавить текст с помощью команды Echo, шаг 3

      Добавить текст с помощью команды Echo

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

      4. Команда tee с опцией -a

      Команда tee используется для чтения стандартного ввода и записи его в стандартный вывод, а также в файлы. Использование команды tee с параметром -a не перезапишет содержимое, а добавит его в файл. Давайте разберемся на примере.

      Добавить текст с помощью команды Tee, шаг 6

      Добавить текст с помощью команды Tee

      Текст в файле linux.txt перенаправляется на команду tee через «|» оператора и добавляется к файлу linuxfordevices.txt. Вы видите, что все данные переносятся в новый файл.

      5. Добавить с помощью «printf» в Linux

      Вы можете подумать, почему мы используем printf в Linux, поскольку он используется в языке C для печати текста. Мы знаем, что printf используется для отображения стандартного вывода. Ребята, мы также можем использовать команду printf для добавления текста с помощью оператора «>>» в Linux.Просто добавьте текст в кавычки и отправьте его в файл в качестве вывода. Давайте посмотрим на команду ниже:

      Добавить текст с помощью Printf, шаг 5

      Добавить текст с помощью Printf

      6. Добавьте текст с помощью команды awk

      Команда awk используется для выполнения определенного действия над текстом в соответствии с оператором программы. Использование ключевого слова BEGIN с командой awk указывает, что awk выполнит действие, обозначенное в begin, один раз, прежде чем будут прочитаны какие-либо входные строки.

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

      Добавить текст с помощью команды Awk, шаг 7

      Добавить текст с помощью команды Awk

      Вы можете видеть, что текст «Не стесняйтесь связаться с нами» был добавлен в конец файла linux.txt, как показано выше на изображении. Используйте команду cat для печати текста файла.

      7. Сохраните список файлов в другой файл с помощью оператора >>

      Мы также можем сохранить список файлов в любом каталоге, используя команду ls с оператором «>>». Нам нужно просто использовать команду ls, за которой следует оператор «>>» и имя файла, в котором нам нужно сохранить вывод. Давайте посмотрим на команду ниже:

      List Atll The Files Step 9 1

      Список всех файлов

      Заключение

      В этом руководстве мы узнали, как использовать оператор «>>» для добавления текста в конец файла. Мы также узнали, в чем разница между перенаправлением ввода и перенаправлением вывода, как сохранить список файлов и дату в любой файл и так далее. Я надеюсь, что все ваши опасения сняты. Если возникнут какие-либо проблемы, сообщите нам об этом в разделе комментариев.

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