在现有文件python中的特定位置插入内容

时间:2018-09-11 05:47:00

标签: python file

我试图将传递给函数的参数附加到现有文本文件中的特定位置。 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 :(得分:0)

解决方案

在评论的修订版中,考虑到这仅适用于上面的示例,只需要更改这三行,这将完成任务(包括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"

答案 1 :(得分:-1)

r+模式打开文件
使用Python文件I / O中的.seek方法,然后编写内容。