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

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

  • автор:

Запись в файл с проверкой последней строки

Есть переменная name_elem_site , значение которой необходимо записать в файл. Значение получаем из стороннего источника. Есть файл, изначально пустой. Нужно дописать значение переменной name_elem_site в этот файл на новой строке, но только в случае, если значение переменной не совпадает с последней строкой этого файла. Например, если последовательно приходят строки:

Текст Текст Текст Текст2 Текст Текст3 Текст2 Текст 

То в файл запишется только

Текст Текст2 Текст Текст3 Текст2 Текст 

т.к. были три подряд идущие одинаковые значения, а такое запрещено.
Отслеживать
52.4k 11 11 золотых знаков 110 110 серебряных знаков 312 312 бронзовых знаков
задан 21 дек 2016 в 13:22
43 11 11 бронзовых знаков

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

– user194374
21 дек 2016 в 13:34
@kff в проверке на последнею строку.
21 дек 2016 в 18:55

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

Считывание последней строки из файла.

Первый вариант. Самый простой. Но файл должен целиком помещаться в память. В случае пустого файла работает некорректно.

with open('test.txt') as file: last_line = file.readlines()[-1].strip() 

(Считываем все строки файла в список, берём последнюю, убираем символ новой строки, если он есть.)

Второй вариант. Чуть сложнее. Но не требует памяти для хранения файла целиком. В случае пустого файла также работает некорректно.

with open('test.txt') as file: for last_line in file: pass last_line = last_line.strip() 

(Читаем файл построчно. В переменной сохранится последняя прочитанная строка. Затем опять-таки удаляем символ новой строки, если таковой имеется.)

Третий вариант. Аналогичен первому, но корректно работает и в случае пустого файла. В этом случае last_line будет содержать значение None .

last_line = None with open('test.txt') as file: lines = file.readlines() if lines: last_line = lines[-1].strip() 

Четвёртый вариант. Аналогичен второму, но корректно работает и в случае пустого файла. В этом случае last_line будет содержать значение None .

last_line = None with open('test.txt') as file: for last_line in file: pass if last_line: last_line = last_line.strip() 

Перевод «предпоследней строке» на английский

В предпоследней строке настоящего подпункта (с) в выражение «основное производство» следует вставить слово «иностранное».

In the penultimate line of the present subparagraph (c), the word «foreign» should be inserted before the words «main proceeding».

В предпоследней строке пункта, слово «решение» должно быть написано с заглавной буквы.
In the penultimate line of the paragraph, the word «decision» should be capitalized.
В предпоследней строке снять слово «партнерств».
Delete the word «partnerships» in the sixth line.

В предпоследней строке пункта 10 постановляющей части слово «нарушений» следует заменить следующей фразой: «многочисленных и сложных факторов, включая нарушения».

In the sixth line of paragraph 10, the words «human rights abuses» should be replaced by «multiple and complex factors, including human rights violations,».

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

The proverb begins on the penultimate line, continues on the last line of the text panel, and runs sequentially from the first line down.

В тексте на русском языке в предпоследней строке пункта 1 после слова «новых» следует добавить запятую.

In the Russian text, a comma should be inserted just after the word «novykh» (new) in the penultimate line of paragraph 1.

ПРЕДСЕДАТЕЛЬ ставит под вопрос необходимость термина «частный» в предпоследней строке пункта и предлагает его исключить.

The CHAIRMAN questioned the need for the term «private» in the penultimate line of the paragraph and suggested its deletion.

И, наконец, в предпоследней строке пункта 19 перед словом «сторон» следует поставить слово «государств».

Finally, in the penultimate line of paragraph 19, the word «States» should be inserted before «parties».

Было указано, что в предпоследней строке пункта 7 после слова «заявок» следовало бы восстановить слова «предложений или оферт».

It was pointed out that the words «proposals or offers» should be reinstated after the word «tenders» in the penultimate line of paragraph (7).

Можно было бы убрать слова «и переговорах о таком соглашении», которые содержатся в предпоследней строке пункта 2, сохранив, безусловно, за третьим государством право участия в консультациях.

Perhaps the words «and in the negotiation of», in the penultimate line of the paragraph, could be deleted, with the third State retaining an entitlement to participate in the consultations.

Он отмечает изменения в предпоследней строке пункта 10 постановляющей части, которую следует читать: «правовой и практической точек зрения, а также для установления местонахождения многих афганцев, по-прежнему считающихся без вести пропавшими».

The penultimate line of paragraph 10 had been amended and should read as follows: «. legally and effectively ended, as well as for the tracing of the many Afghans still missing. «.

В частности, в пункте 4 постановляющей части в предпоследней строке слово «дополнительные» следует заменить на «адекватные»; из первой строки пункта 9 постановляющей части следует удалить слово «международный».

Particularly, in the penultimate line of operative paragraph 4, the word «additional» should be replaced by «adequate», and in the first line of operative paragraph 9, the word «international» should be deleted.

И наконец, в пункте 6 слово «просит» следует заменить словами «настоятельно призывает», а в предпоследней строке перед словом «подготовке» следует добавить слово «надлежащей».

Finally, in paragraph 6, the word «Requests» should be replaced by «Urges», and the words «the preparations» in the penultimate line should be replaced by «adequate preparations».

Г-н ТОРНБЕРРИ предлагает заменить в предпоследней строке фразу «местная и региональная культура» фразой «местная и региональная культура и традиции».

Mr. THORNBERRY proposed replacing, in the penultimate line, the phrase «the local and regional culture» by «the local and regional cultures and traditions».

Г-н РЕШЕТОВ в ответ на вопрос г-на ШЕРИФИСА говорит, что, по сути дела, было бы неблагоразумным поддерживать партию, о которой идет речь в предпоследней строке данного пункта, в том отношении, что она является крупной партией.

Mr. RECHETOV, answering a question from Mr. SHERIFIS, said that it would indeed be rather inadvisable to encourage the party referred to in the penultimate line of the paragraph in the belief that it was a major party.

В пункте 10 запятую после слова «силу» [в русском варианте запятая отсутствует. — Прим. перев.] в предпоследней строке следует снять.

In paragraph 10, the comma following the word «nature» in the penultimate line should be deleted.

Г-н РЕШЕТОВ (Докладчик по стране) предлагает в предпоследней строке этого пункта заменить фразу «поощрять их к использованию» фразой «поощрять использование».

Mr. RECHETOV (Country Rapporteur) suggested that in the penultimate line of the paragraph the phrase «encourage them to use» should be replaced by «encourage the use of».

В предпоследней строке английского варианта текста этого пункта слова «выступили в целях заключения» следует заменить словами «выступили в целях очередного продления», с тем чтобы последние строчки пункта гласили:

In the English version, in the penultimate line of the paragraph, the word «conclude» should be replaced by «further extend», so that the last part of the paragraph reads:

В предпоследней строке пункта 22 постановляющей части следует опустить слова «вынести рекомендации».

The words «to make recommendations» in the second last line of operative paragraph 22 should be deleted.

Нужно написать скрипт, который добавляет текст в предпоследнюю строку. Как это реализовать?

6325df43290b3563770969.png

Мне нужен некоторый скрипт, который добавит текст в другой скрипт в зависимости от входных аргументов. Сейчас мне нужно некоторый здоровенный текст с соблюдением табуляции, сформированный моим скриптом, добавить в другой скрипт перед последней его строкой. К примеру, ненагруженный текст из моего .sh:

  • Вопрос задан более года назад
  • 110 просмотров

Комментировать
Решения вопроса 0
Ответы на вопрос 4

firedragon

Владимир Коротенко @firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.

Комбинация из top lines sh

Просто переведите свой вопрос на английский и замените предложения командами

Ответ написан более года назад
Комментировать
Нравится 1 Комментировать
Чем больше знаю, тем лучше понимаю, как мало знаю.

if [ . ]; then head -n -1 /path/to/filename >newfile echo "added text" >>newfile tail -n 1 /path/to/filename >>newfile fi

Ответ написан более года назад
Комментировать
Нравится 1 Комментировать

sed '$i\ str1\ str2\ str3' your_file.txt

Ответ написан более года назад
Комментировать
Нравится Комментировать

smorman

When In Rome do as The Romans do.

Многие sed советуют, но sed имеет баги и если рядом будут файлы с похожим контентом, он поменяет и в них тоже всё.

Лучше AWK пользовать для этих целей.

Как добавить предпоследнюю строку в файл через консоль?

Доброго времени суток, подскажите пожалуйста, как добавить строку через консоль командой именно в предпоследнюю строку, так как последняя строка закрывается скобкой, и ее трогать нельзя.
param = какой то текст,
какой то текст,
какой то текст,
какой то текст,
какой то текст,
тут нужно добавить строку
>

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

Комментировать
Решения вопроса 1

fox_12

Расставляю биты, управляю заряженными частицами

Удалить последнюю строку
Дописать новую строку
Дописать скобку

param = какой то текст,
какой то текст,
какой то текст,
какой то текст,
какой то текст,
>

sed -i '$ d' 1.txt echo 'новая строка' >> 1.txt echo '>' >> 1.txt cat 1.txt

param = какой то текст,
какой то текст,
какой то текст,
какой то текст,
какой то текст,
новая строка
>

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

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