我试图将传递给函数的参数附加到现有文本文件中的特定位置。 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()
但是,它不起作用。有没有一种方法可以将参数直接附加到包括" "
和,
的文件中。我正在尝试仅将参数添加到现有文件中,并在指定位置添加数据。
答案 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
方法,然后编写内容。