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

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

13.02.2016, 20:33. Показов 7417. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru