Как записать в файл с новой строки с помощью

Обновлено: 04.07.2024

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

\r\n означает новую строку; если вы хотите изменить две строки, повторите \r\n, то есть \r\n\r\n; если вы меняете три строки, повторяйте три раза, то есть \r\n\r\n\r\n; и так далее. Пример кода выглядит следующим образом:

Вызов: SaveTextFileNewline ( @ "F:\temp\txtName.txt" );

Следующий код также предназначен для записи текста в текстовый файл, метод реализации такой же, как и выше, но вместо \r\n используется Environment.NewLine.

Вызов: SaveTextFileNewline ( @ "F:\temp\txtName.txt" );

<р>3. Содержимое текстового поля не упаковывается после сохранения в файл txt

Если содержимое текстового поля сохраняется в текстовый файл без разрывов строк, это происходит потому, что новая строка текстового поля имеет значение \n, а новая строка текстового файла — \r\ n. Только заменив \n на \r\n, получится следующий код:

private void SaveTextToTextFile ( string filePath )
string text = textbox1.Text;
if ( string . IsNullOrEmpty ( text ))
return ;

текст = текст. Заменить ("\n", "\r\n");
Файл . WriteAllText (Путь к файлу, текст);
>

Вызов: SaveTextToTextFile ( @"F:\temp\txtName.txt" );

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

private void ReadTextFromTextFile ( string filePath )
try
using ( FileStream fs = new FileStream ( filePath , FileMode .Open, FileAccess .Read))
StreamReader srd = new StreamReader ( fs ) ;
строка line = srd . ReadLine(), текст = строка;
в то время как ( строка != null )
строка = srd . ЧитатьСтроку();
текст += строка ;
>
срд . Закрывать ();
фс. Закрывать ();
textbox1.Text = RichTextBoxDisplayNLines ( text , 1000, 20);
>
>
catch
// Ошибка чтения текстового файла!
>
>

Вызов: ReadTextFromTextFile ( @"F:\temp\txtName.txt" );

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

private void ReadTextFromTxtFileNewlineFromSemicolon ( string filePath )
try
using ( FileStream fs = new FileStream ( filePath , FileMode .Open, FileAccess .Read))
StreamReader srd = new StreamReader ( fs ) ;
строка text = srd . ЧитатьДоКонца();

серд. Закрывать ();
фс. Закрывать ();
if (! string . IsNullOrEmpty ( text ))
textbox1.Text = text . Заменить (";" , "; \r\n " );
>
>
catch
//Ошибка чтения текстового файла!
>
>

Вызов: ReadTextFromTxtFileNewlineFromSemicolon ( @"F:\temp\txtName.txt" );

Я хочу добавлять новую строку к моей строке каждый раз, когда я вызываю file.write() . Как проще всего это сделать в Python?

17 ответов 17

Если вы используете переменные для составления записи, вы можете добавить + "\n" в конце, например, fileLog.write(var1 + var2 + "\n").

Это можно сделать двумя способами:

или, в зависимости от вашей версии Python (2 или 3):

я использую f.writelines(str(x)) для записи в файл, где x – это список, чтобы теперь рассказать, как записать список x в файл, копируя каждый список, начиная с новой строки

Если вы часто используете его (много строк), вы можете создать подкласс файла:

Теперь он предлагает дополнительную функцию wl, которая делает то, что вы хотите:

Возможно, я упустил что-то вроде разных символов новой строки (\n, \r, . ) или того, что последняя строка также завершается новой строкой, но мне это подходит.

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

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

как было предложено в другом ответе, но зачем использовать конкатенацию строк (медленную, подверженную ошибкам), когда вы можете дважды вызвать file.write:

обратите внимание, что записи буферизуются, поэтому это одно и то же.

Еще одно решение для записи из списка с использованием fstring

И как функция

Открытие файла с параметром "a" вместо "w" не изменяет работу функции записи так, как вы описали. Единственный эффект, который это имеет, заключается в том, что файл не будет перезаписан, а текст будет добавлен в самую нижнюю строку, а не будет начинаться в верхнем левом углу пустого файла.

Используйте печать, если не записываете в двоичные файлы.Пример ниже подходит для форматирования CSV-файлов:

Обратите внимание, файл не поддерживается в Python 3 и был удален. Вы можете сделать то же самое с помощью встроенной функции open.

Мне действительно не хотелось вводить \n каждый раз, и ответ @matthause мне не подходил, поэтому я создал свой собственный класс

И вот это реализовано

Это должно отображаться в файле журнала как

Использование append (a) с open() в операторе print() выглядит для меня проще:

Это решение, которое я придумал, пытаясь решить эту проблему для себя, чтобы систематически производить \n в качестве разделителей. Он пишет, используя список строк, где каждая строка является одной строкой файла, однако кажется, что это может работать и для вас. (Питон 3.+)

Почему бы просто не использовать open(path, "w") как файл: для строки в strList: file.write(line + "\n") ? Таким образом, вы можете удалить всю работу со списком, чек и оставить только 3 строки.

Хорошо, вот безопасный способ сделать это.

Это записывает от 1 до 10 каждое число в новой строке.

Вы можете оформить метод write в определенном месте, где вам нужно такое поведение:

Обычно вы использовали бы \n, но по какой-то причине в Visual Studio Code 2019 Individual это не сработает. Но вы можете использовать это:

Если запись является обратным вызовом, вам может понадобиться пользовательская запись.

Сам внутри пользовательского открывателя. См. ответы и отзывы на этот вопрос: создание подклассов файловых объектов (для расширения операций открытия и закрытия) в python 3

Я столкнулся с этим при использовании ftplib для "извлечения строк" из файла, который был "основан на записи" (FB80):

и в итоге получилась одна длинная запись без новой строки, скорее всего, это проблема с ftplib, но непонятная.

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

1. Обзор

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

В этом руководстве мы увидим, как вставлять текст в определенную строку файла с помощью команд Linux. Мы рассмотрим ed, sed, awk, perl и ex команды, которые позволяют нам изменять и манипулировать текстовыми файлами. Мы также увидим, как добиться этого с помощью комбинации команд head, tail и echo.

2. Использование ed

Предположим, у нас есть файл с именем File1, который содержит:

И мы хотим вставить некоторый текст в третью строку File1. Давайте посмотрим, как это делается с помощью команды ed:

Мы видим, что ed отображает количество символов в файле. Обратите внимание, что после 32 нет подсказки. Это потому, что ed — это интерактивный построчный редактор. Итак, ed ждет, пока мы введем дальнейшие инструкции.

По умолчанию ed указывает на последнюю строку файла, и каждая команда в ed будет работать с текущей строкой. Поэтому ed по умолчанию применяет команду к последней строке. Теперь укажем номер строки и команду:

Давайте посмотрим, что означает 3i. Число 3 указывает строку, в которую мы хотим вставить текст. Затем я включаю режим вставки. Следующая строка — это текст, который мы хотим вставить. Мы можем добавить одну или несколько строк.

После всех вводов мы должны сохранить изменения и выйти:

Давайте посмотрим, что это за аргументы. '.' завершает режим ввода. Затем мы записали изменения, введя w. Наконец, мы вставили q, чтобы выйти из ed. Воспользуемся командой cat, чтобы увидеть содержимое измененного файла. :

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

Сценарий script.ed содержит все инструкции, которые мы использовали. Теперь мы можем перенаправить скрипт в качестве входных данных в редактор ed:

Давайте посмотрим, что это за числа в выводе. Число 32 — это количество символов в File1 до редактирования, а 49 — это количество символов в файле после применения скрипта. Таким образом, мы можем быть уверены, что наши данные вставлены правильно.

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

Команда sed — это мощная утилита для редактирования файлов в Linux. Он предлагает множество операций с файлами. В этом разделе мы собираемся вставить текст в третью строку File1, как мы это делали с ed, но на этот раз с помощью sed GNU. Команда sed была создана на основе ed, но в отличие от нее ее нельзя использовать в интерактивном режиме. Действительно, команды модификации мы пропишем в той же строке:

Давайте посмотрим, что мы сделали в одинарных кавычках. Во-первых, мы добавили номер строки для вставки.i, как и в ed, включает режим вставки sed. Наконец, мы устанавливаем содержимое новой строки. Обратите внимание, что пробел между любыми элементами в кавычках необязателен. Например, мы можем изменить фразу в примере на '3iNew Line with sed' и получить тот же результат, что и выше.

Теперь, если мы напечатаем File1, мы увидим, что файл еще не изменился:

Изменения с ed будут сохранены непосредственно во входной файл, но с sed нам нужна возможность сохранить результат в первичный файл. Используя параметр -i для sed, мы можем применить изменения непосредственно к файлу. Если мы не используем эту опцию, sed распечатывает изменения только на терминале. Давайте добавим -i к нашей предыдущей команде:

Обратите внимание, что параметр -i доступен только для GNU sed.

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

Если мы не хотим изменять входной файл, мы можем использовать перенаправление, чтобы сохранить вывод в новый файл. В этом случае нам не нужно использовать параметр -i:

Следует отметить, что sed является наиболее распространенным способом вставки. Тем не менее полезно знать и другие альтернативы.

4. Использование awk

awk — это неинтерактивный программируемый редактор, который считывает входные данные построчно. По умолчанию awk читает по одной строке за раз. Кроме того, он также может читать запись, содержащую несколько строк.

awk предоставляет язык программирования, такой как C, для написания скриптов для редактирования строк. Как и sed, awk происходит от ed. Как и в предыдущих примерах, добавим наш текст в третью строку file1:

В кавычках у нас есть пара условий. В разделе условие мы используем переменную awk NR (количество записей), чтобы указать номер строки. Раздел action должен быть заключен в фигурные скобки (<>) и будет применяться только к адресам строк, указанным в условии. Для обработки awk проверяет условие и, если true, выполняет раздел action.

В awk нет такого параметра, как sed -i для сохранения результата во входной файл. Мы можем перенаправить stdout (>), чтобы сохранить результат в новом файле:

Обратите внимание, что мы указали номер строки с помощью ==. Также обратите внимание, что 1 в конце цитаты эквивалентно true. Вместо этого может быть любое ненулевое число. Мы должны поместить любое ненулевое число после раздела действия в фигурных скобках, чтобы awk выполнял действие по умолчанию, печать, для каждой строки. В противном случае awk считает 0 или false по умолчанию и просто печатает новую строку и игнорирует содержимое file1. . Распечатаем файл awk_out:

Обратите внимание, что с помощью awk мы не можем сохранить результаты обратно во входной файл. Но, начиная с версии 4.1.0, команда gawk (GNU awk) поддерживает параметр -i.

5. Использование perl

perl — это неинтерактивная команда, такая же, как sed и awk. По этой причине нам нужно использовать комбинацию параметров и if операторов, чтобы вставить новую строку в File1. Давайте посмотрим, как это работает. :

Эта опция указывает perl выполнять команды в одинарных кавычках. В кавычках мы просим perl напечатать фразу "Новая строка с perl", если она доходит до третьей строки. Поиск в шаблоне if выполняется с помощью $. символа с текущим номером строки.

В отличие от других команд, perl по умолчанию не выводит результат. Поэтому мы можем добавить параметр -p для печати всех строк File1. Это позволит нам проверить, правильно ли сделаны изменения:

Мы видим, что perl почти достигает ожидаемого результата, но не добавляет новую строку (\n) после вставленный текст. Для этого мы могли бы добавить \n к нашей фразе и изменить ее на "Новая строка с perl\n". Но мы также можем использовать параметр -l в perl для автоматического добавления \n в конце новой строки:

Как и sed, perl имеет параметр -i для сохранения изменений на месте:

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

Наконец, давайте посмотрим на полученный файл:

6. Использование ex

Утилита ex — это построчный интерактивный текстовый редактор, подобный ed, производный от vi. Мы собираемся использовать ex для добавления строки в file1. Итак, давайте сначала откроем файл с помощью ex:

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

Эти строки содержат некоторую информацию о входном файле. Первая строка включает количество строк и количество символов во входном файле. Вторая строка говорит, что если мы введем visual, мы сможем увидеть содержимое файла и отредактировать файл вручную. Обратите внимание на точку с запятой в третьей строке. Редактор ставит точку с запятой в начале каждой командной строки.

Для вставки синтаксис ex подобен редактору ed. Давайте посмотрим, как это работает:

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

С ex результат будет сохранен на месте. Поскольку это интерактивный редактор, он позволяет нам изменить входной файл, а затем сохранить изменения с помощью xit. Итак, если мы cat File1, мы увидим, что ex успешно вставил данные:

7. Использование комбинации head и tail

Давайте воспользуемся комбинацией команд head, tail и echo, чтобы вставить новую строку:

Во-первых, мы использовали фигурные скобки (<>) для группировки команд. Во-вторых, мы использовали точку с запятой в конце каждой команды, чтобы указать ее окончание. Обратите внимание, что нам нужно вставить новую строку в третью строку. Итак, мы использовали команду head для печати первых двух строк File1. Затем мы использовали команду echo для печати новой строки. И, наконец, мы использовали команду tail для печати остальной части входного файла, начиная со строки 3. Сохраним вывод в новом файле:

8. Заключение

В этом руководстве мы представили шесть способов вставки строки в заданный файл. С sed, awk и perl нам не нужно открывать файл для редактирования. Так что скорость модификации с ними быстрее, чем с остальными командами.

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

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

Оглавление:

Приступим…

Построение примеров данных

Файл TXT, показанный на снимке экрана ниже, будет использоваться в качестве основы для этого руководства по R:

Файл TXT пример

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

Пример: добавление новой строки в текстовый файл с помощью функции write()

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

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

Файл TXT с новой строкой

Посмотрите на показанный ранее снимок экрана. Он показывает наш обновленный файл TXT, содержащий дополнительную строку текста.

Видео и дополнительные ресурсы

Посмотрите следующее видео с моего канала YouTube. Я объясняю код R этого руководства в видео:

Миниатюра кнопки согласия на содержание YouTube

Если вы примете это уведомление, ваш выбор будет сохранен, и страница обновится.

Принять контент YouTube

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

Из этой статьи вы узнали, как добавить новую строку текста в файл TXT в программировании на R. Дайте мне знать в разделе комментариев ниже, если у вас есть дополнительные вопросы или комментарии.


Например, вы можете использовать команду echo для добавления текста в конец файла, как показано ниже. В качестве альтернативы вы можете использовать команду printf (не забудьте использовать символ n для добавления следующей строки). Вы также можете использовать команду cat, чтобы объединить текст из одного или нескольких файлов и добавить его в другой файл.

Контентидос

Как добавить строку вверху файла Linux?

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

Как добавить новую строку в Unix?

Самый часто используемый символ новой строки

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

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

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

Как добавить новую строку в Linux?

Добавление символов новой строки в строку. В операционных системах есть специальные символы, обозначающие начало новой строки. Например, в Linux новая строка обозначается буквой «n», также называемой переводом строки. В Windows новая строка обозначается с помощью «rn», иногда называемого возвратом каретки и переводом строки или CRLF.

Как добавить в начало файла в Unix?

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

Как добавить строку в конец файла в Linux с помощью SED?

  1. Добавить строку после N-й строки. Это добавит строку после N-й строки в ФАЙЛЕ. текст . Синтаксис: …
  2. Добавить строку с помощью регулярного выражения/шаблона. Это добавит строку после строки, в которой найдено совпадение с образцом. Синтаксис: sed ‘/PATTERN/ a’ FILE.txt Пример:

Как добавить новую строку в printf?

Попробуйте это: printf ‘n%sn’ ‘Я хочу это на новой строке! ‘ Это позволяет вам отделить форматирование от фактического текста.

Как создать новую строку в терминале?

Чтобы воссоздать это, вы должны использовать Shift + Enter после первой строки, чтобы иметь возможность создать первый объект User в новой строке. Оказавшись в …, простое нажатие ввода даст вам другую строку с подсказкой …. Чтобы выйти, просто нажмите Enter в этом приглашении, чтобы вернуться к приглашению >.

Как найти новый символ строки в UNIX?

3 ответа. Похоже, вы хотите найти строки, содержащие последовательность из двух символов n . Для этого используйте команду grep -F , которая обрабатывает шаблон как фиксированную строку, а не как регулярное выражение или управляющую последовательность. Этот -P grep будет соответствовать символу новой строки.

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

Команда cat в основном используется для чтения и объединения файлов, но ее также можно использовать для создания новых файлов. Чтобы создать новый файл, запустите команду cat, затем оператор перенаправления > и имя файла, который вы хотите создать. Нажмите Enter, введите текст, а когда закончите, нажмите CRTL+D, чтобы сохранить файлы.

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

Введите команду cat, за которой следует двойной символ перенаправления вывода ( >> ) и имя файла, в который вы хотите добавить текст. Курсор появится на следующей строке под приглашением. Начните вводить текст, который хотите добавить в файл.

Какая опция используется с командой RM для интерактивного удаления?

Объяснение: Как и в команде cp, опция -i также используется с командой rm для интерактивного удаления. Подсказки запрашивают у пользователя подтверждение перед удалением файлов.

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