问题描述
以下代码打开一个文件,搜索一个单词或短语,然后在数组中打开该文件,然后在单词或短语之后添加两个新对象,然后将其重新写入文件中,with语句不起作用,当编译后会产生语法错误,指出文件= open(...)'='无效,但它是赋值运算符。 救命?
def edit(file_name,search_parameters,added_data,second_data):
with(file = open(file_name,'r')):
lines = list(file)
file.close()
linenum = (num for (num,line) in enumerate(lines) if search_parameters in line).next()
lines[linenum+1] = added_data
lines[linenum+1] = second_data
with (file2 = open(file_name,"w")):
file2.writelines(line + '\n' for line in lines)
file2.close()
1楼
您需要使用as
关键字:
with open(file_name,'r') as file:
with open(file_name,"w") as file2:
这是有关的参考。
另外,这两行不是必需的:
file.close()
file2.close()
使用with语句打开文件将导致在退出with语句的代码块时自动关闭文件。 实际上,这是您使用with语句打开文件的唯一原因。