|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 kklnkklnkkln 于 2019-3-31 00:42 编辑
- def file_replace(file_name,rep_word,new_word):
- f_read = open(file_name)
- content = []
- conut = 0
- for eachline in f_read:
- if rep_word in eachline:
- count += eachline.count(rep_word)
- eachline = eachline.replace(rep_word,new_word)
- content.append(eachline)
- decide = input('\n文件 %s 中共有%s个【%s】\n您确定要把所有的【%s】替换为【%s】吗?\n【YES/NO】:' \
- % (file_name, count, rep_word, rep_word, new_word))
- if decide in ['YES','Yes','yes']:
- f_write = open(file_name,'w')
- f_write.writelines(content)
- f_write.close()
- f_read.close()
- file_name = input('请输入文件名:')
- rep_word = input('请输入要替换的单词或者字符:')
- new_word = input('请输入新的单词或者字符:')
- file_replace(file_name,rep_word,new_word)
复制代码
f_write.writelines(content)为什么这一行代码能精准的替代原有的位置?
content只是储存了 新的替换文字啊,还是说储存的时候已经把原有的位置也记住了?新的写入直接写入原有的位置?
'w'有新的东西往里写才会覆盖,不写就不覆盖。
- f_write = open(file_name,'w')
复制代码
writelines的时候没有替换工作,替换工作在eachline.replace(rep_word,new_word)已经完成了。
写入文件的语句是这个:
- f_write.writelines(content)
复制代码
content是你写入到文件的内容,这个content的构建是在前面那个for循环里面完成的。
看前面那个for循环,是把每一句话都放到contnet里面了,最后写入文件的时候也是按顺序写进去就完事了,不涉及「自动找到替换前的位置」
|
|