вставить содержимое в определенном месте внутри существующего файла Python - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь добавить параметры, переданные функции, в определенное место в существующем текстовом файле.TXT-файл:

query{
text:"",
source_language:"",
target_language:"",
},
data_type:[16],
params{
client:"xyz"
}

python:

def function(text,source_language,target_language):
     f = open("file.txt", "w");
     f.write( 'text:' + text + '\n' )
     f.write( 'source_language:' + source_language + '\n' )
     f.write( 'target_language:' + target_language + '\n' )
     f.close()

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

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Решение

В пересмотре ваших комментариев, учитывая, что это применяется только к приведенному выше примеру и нужно только изменить эти конкретные три строки, это выполнит задачу (включая if location: в случае, если вы не соответствуете ключевому слову, которое оно выиграло стереть ваш файл open('w')

def change_text(new_text):
    content[1] = list(content[1])
    y = list(new_text)
    content[1] = content[1][:6] + y  + content[1][-2:]
    content[1] = ''.join(content[1])

def change_source_l(new_source_l):
    content[2] = list(content[2])
    y = list(new_source_l)
    content[2] = content[2][:17] + y  + content[2][-2:]
    content[2] = ''.join(content[2])

def change_target_l(new_target_l):
    content[3] = list(content[3])
    y = list(new_target_l)
    content[3] = content[3][:17] + y  + content[3][-2:]
    content[3] = ''.join(content[3])

filename = open('query.txt', 'r')
content = filename.read()
content = content.split()
filename.close()

name = open('query.txt', 'w')

change_text('something')
change_source_l('this')
change_target_l('that')

name.write('\n'.join(content))
name.close()

выход

(xenial)vash@localhost:~/python/LPTHW$ cat query.txt 
query{
text:"something",
source_language:"this",
target_language:"that",
},
data_type:[16],
params{
client:"xyz"
0 голосов
/ 11 сентября 2018

Открыть файл в режиме r+Используйте метод .seek из файлового ввода-вывода Python, а затем напишите свой контент.

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