Как записать строку в любое конкретное (условное) место в файле - PullRequest
0 голосов
/ 31 марта 2019

Я написал этот скрипт на Python для обработки файла словаря (который является текстовым файлом) следующим образом:

Слово идет после «#», а значение этого слова идет под словом, разделенным \ n.

...
#hello
xxx
yyy
zzz
#another
ooo

Я хочу добавить слова в файл с помощью этого сценария Python. Но я не знаю, как это сделать. И самое запутанное - если в файле есть это слово, тогда добавьте к нему значения.

./main.py add 'hello' 'xxx;yyy;zzz;'

Вот так я могу добавить слово и его значения в файл. Как я мог это сделать. Я написал много сценариев для выполнения, и они:

def add(d,w,m):
    dic = dictPath+d
    nwords = '\n'.join(m.split(";"))
    wmean = '#'+w+'\n'+nwords
    here = False
    lnum=0
    with open(dic,"r") as rf:
        for line in rf:
            if line == "#"+w+"\n": ## 'cause every line ends with \n
                here="yes"
                lnum+=1
            else:
                lnum+=1
    if here == "no":
        with open(dic,"a") as af:
            af.writelines(wmean)
    else:
        with open(dic,"w") as wf:
            data = rf.readlines()
            data[lnum+1] = nwords
            wf.writelines(data)
        wf.close()
        rf.close()
        af.close()

и

def add(d,w,m):
    dic = dictPath+d
    nwords = '\n'.join(m.split(";"))
    wmean = '#'+w+'\n'+nwords
    with open(dic,"r+") as f:
        for line in f:
            if line == "#"+w+"\n":
                f.write(wmean)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...