Python Найти указанную c строку в файле и добавить под ней - PullRequest
0 голосов
/ 03 февраля 2020

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

\\ desk



\\ phone



\\ chairs



\\tv

, чтобы он выглядит так

\\desk    # CODE finds '\\desk' then appends below it or above
wood
metal
etc

\\phone   # CODE finds '\\phone' then appends below it or above
cell
landline 
etc

\\chairs

\\tv

Я знаю, что решение, вероятно, безумно легкое, и я клянусь, что делал это раньше, но, очевидно, я задавал google / остальной части inte rnet неправильный вопрос.

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

1 Ответ

0 голосов
/ 03 февраля 2020

Попробуйте:

def append(filename, **args):
    with open(filename) as f:
        text = [x for x in f.read().splitlines() if x]

    for k, v in args.items():
        k = r"\\ "+k
        if k not in text:
            continue

        i = text.index(k)
        for n in reversed(v):
            text.insert(i+1, n)

    return "\n".join(text)

print(append(
    "file.txt",
    desk=["wood", "metal", "etc"],
    phone=["cell", "landline", "etc"]
))

Вывод:

\\ desk
wood
metal
etc
\\ phone
cell
landline
etc
\\ chairs
\\tv

Надеюсь, это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...