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

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

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

Author24 — интернет-сервис помощи студентам
Привет всем, нуждаюсь в помощи тех, кто с таким сталкивался, язык 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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.02.2016, 20:33
Ответы с готовыми решениями:

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

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

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

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

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

4
Эксперт NIX
2795 / 2038 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
14.02.2016, 00:35 2
Лучший ответ Сообщение было отмечено 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  [ТС] 3
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
2795 / 2038 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
15.02.2016, 20:57 4
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  [ТС] 5
Благодарю за ваше терпение и пояснения. Просто я не знаю, как проходит процесс обучения у других.
Даже такой совет, как "Выполняете код по командно" мне может помочь, надеюсь )
0
16.02.2016, 10:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.02.2016, 10:38
Помогаю со студенческими работами здесь

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

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

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

Первые 2 символа строки вставить в середину другой строки
Ввести рядки s1 та s2. Перші 2 симоли s2 видалити та вставити в середину s1. s1 та s2 -з’єднати....

Как получить часть строки до определенного знака
Всем Здравствуйте! Прошу знатоков о помощи. Есть строка, разделенная ";" - "Строка1; Строка2;...

Изъять часть строки из другой строки
Привет! Имеется строка &ab..xyz#123 Как изъять строку, которая идет с & до # и строку после # ?...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru