以下代码打开文件搜索单词或短语,然后在数组中打开文件,然后在单词或短语之后添加两个新对象,然后将其重新写入文件,带有语句不work,编译时产生语法错误,说file = 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()
答案 0 :(得分:4)
您需要使用as
关键字:
with open(file_name,'r') as file:
with open(file_name,"w") as file2:
以下是Python's with statement的参考资料。
另外,这两行是不必要的:
file.close()
file2.close()
使用with语句打开文件将导致在退出with语句的代码块时自动关闭它。实际上,这是您使用with语句打开文件的唯一原因。