С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/34: Рейтинг темы: голосов - 34, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 10

Произвести/скопировать часть среза строки после знака и вставить в средину другой строки

13.02.2016, 20:33. Показов 7359. Ответов 4

Студворк — интернет-сервис помощи студентам
Привет всем, нуждаюсь в помощи тех, кто с таким сталкивался, язык Python 2.7
Кратко: У нас есть текстовый файл forest.txt в котором весь текст в виде коротких строк.Нужно по порядковому номеру прочесть часть заданной строки после знака "=" и то что прочли, записать в средину другой строки после знака "=" Затем из другого файла dok.txt прочитать целую короткую строку по ее порядковому номеру в документе и полученное значение вставить в файл forest.txt определенного №-ра строки в средину предложения после знака "="

Данные:
1.Основной Файл forest.txt
Пример строк:
10.| Great light= # В эту строку№10 вставляем скопированную Часть среза строки№12 после знака "=" должно получиться "Great light=have a power"
11.| some text...
12.| small mushrooms=have a power # Надо скопировать/срезать Часть после "=" до конца строки, в данном случае это "have a power"
13.| some text...
14.| unique special links= #В эту строку№14 вставляем после"=" скопированную целую строку№3 из документа dok.txt, в данном случае должно получится "unique special links=bless10"


2.Вспомогательный Файл dok.txt
Пример строк:
1.| some text...
2.| some text...
3.| bless10 # Строка №3, значение которой копируем и вставляем в строку №14 Основного Файла forest.txt после знака "="
Задача:
Читаем основной файл forest.txt, в строке №12 копируем часть после знака "=" до конца строки и полученные данные вставляем в строку№10 после знака "=", затем читаем вспомогательный файл dok.txt, в котором копируем целую строку №3 и полученное значение вставляем в основной файл forest.txt в строку №14 после знака "="

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/env python
# -*- coding: utf-8 -*-
basefile = '/homies/kijon/work2/forest.txt'
helpdok = '/homies/kijon/work2/dok.txt'
import os
 
def replace_word():
    temp = 0
    temp_list = []
    word1 = "small mushrooms="
    word2 = "Great light="
    with open(basefile, 'r') as file:
        for item in file:
            temp += 1
            if temp == 12:
                if word in item:
Пытался делать по предыдущим ответам в другой теме, чувствую что это не тот путь. Что бы работать с одним файлом .txt произвести кпирование Части строк внутри и после, с другого скопировать в этот же еще строку.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.02.2016, 20:33
Ответы с готовыми решениями:

Скопировать определенные строки из файла, вставить в другой, произвести расчет и вывести значения в Label
Здравствуйте, помогите, пожалуйста! Есть txt файл со строками : 9/24/2017 2 120 9/25/2017 3 180 ...

Как скопировать определенные строки из одного текстового файла и вставить их в другой?
как через cmd скопировать определенные строки в txt (на пример с 1-ой по 199-ую и с 200-ой по 300-ую) и поместить их в два других txt

Строки. Перед и после каждого знака бинарной операции вставить пробелы.
Дана строка, представляющая собой запись ывражения на С++. Перед и после каждого знака бинарной операции вставить пробелы; для операции...

4
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
14.02.2016, 00:35
Лучший ответ Сообщение было отмечено sayiko как решение

Решение

Python
5
6
7
8
9
10
11
12
13
14
15
16
with open(helpdok) as d:
    for _ in range(3):
        doc = d.readline()
 
with open(basefile) as b:
    lines = b.readlines()
 
lines[9] = lines[9].split('=')[0] + "=" + lines[11].split('=')[1]
lines[13] = lines[13].split('=')[0] + "=" + doc
 
with open(basefile, 'w') as b:
    b.write(''.join(lines))
1
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 10
15.02.2016, 20:38  [ТС]
Marinero, благодарю за предоставленную возможность. Да пребудет с вами свет. Все получилось.

Python
1
2
3
4
5
6
7
8
9
10
11
12
with open(helpdok) as d:
    for _ in range(3):
        doc = d.readline()
 
with open(basefile) as b:
    lines = b.readlines()
 
lines[9] = lines[9].split('=')[0] + "=" + lines[11].split('=')[1]
lines[13] = lines[13].split('=')[0] + "=" + doc + "\n"  # Без этой "\n" у меня две строки 9 и 13ая, были в одну строчку, но как это исправить, я осознал только через 5ть часов.
 
with open(basefile, 'w') as b:
    b.write(''.join(lines))
К сожалению, очень далека эта тема, как самостоятельно не искал, даже после вашего примера, так и не нашел где найти описания данных действий.
lines[9] - это порядковый номер строки в документе со смещением,
= lines[9]-указываем что работаем с 9ой строкой,
split('=') - Этот параметр, мы указываем до какого символа производим копирование/срез?
[0] - этот показатель совсем не понял, ставил [1] и 2,3,4, срезает как то, но алгоритм так и не понял.?
+ "=" + Тут присваиваем левой части условия правую знаком "="
lines[11].split('=') тут указываем что из строки порядковый номер[11] со смещением, копируем/серз
[1] - единичка предпологал что до конца после знака ('=') ?
Если у вас будет возможность прокоментировать, или описать как вы понимаете строку выше мною описанную в моем понимании, буду этому очень рад.
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
15.02.2016, 20:57
sayiko, Вы, конечно, извините, но Вы спрашиваете про основополагающие конструкции языка. Я понимаю, что чего-то можно не знать, но списки и строки Вы знать обязаны.
lines — это список строк, получился в 6
lines[9] — 10-й элемент этого списка (нумерация от 0)
lines[9] = — сделать 10-й элемент равным …
split() — метод, разделяющий строку по указанным в скобках разделителю на элементы списка
"=" — это не действие, а строка из 1 символа «=»
Да что я рассказываю? Выполняете код по командно|по части команды в интерпретаторе и увидите что получается. + есть встроенная справка.
0
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 10
16.02.2016, 10:38  [ТС]
Благодарю за ваше терпение и пояснения. Просто я не знаю, как проходит процесс обучения у других.
Даже такой совет, как "Выполняете код по командно" мне может помочь, надеюсь )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.02.2016, 10:38
Помогаю со студенческими работами здесь

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

Удалить из строки все повторяющиеся пробелы, после каждого знака препинания вставить два пробела
Прошу помочь с заданием: Разработайте две программы для решения задачи (Удалить из строки все повторяющиеся пробелы, после каждого знака...

Текстовые файлы: вставить после каждого символа строки 3 знака "*"
Дан файл содержащий строку S. Вставить после каждого символа в этой строке 3 знака <*> Результат поместить в этот же файл.

Скопировать нужные строки из одного листа на другой, но так чтобы строки копировались подряд
:'( Здравствуйте, уважаемые профессионалы!!! Осваиваю ВБА! Не могу решить "простую" задачку: необходимо выбрать нужные ячейки...

Скопировать часть строки и часть удалить
1. Удалить из строки ее часть с заданной позиции и заданной длины. 2. Скопировать часть строки с определенной позиции и определенной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru