|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- def change(file_name,words,new_words):
- f = open(file_name)
- count = 0
- content = []
- for each_line in f:
- if words in each_line:
- count = each_line.count(words)
- each_line = each_line.replace(words, new_words)
- content.append(each_line)
- decide = input('\n文件%s中共有%s个【%s】,\n你确定要把【%s】换成【%s】吗?\n【Yes or No】:' \
- % (file_name, count, words, words, new_words))
- if decide in ['yes','Yes','YES']:
- f_write = open(file_name,'w')
- f_write.writelines(content)
- f_write.close()
- f.close()
- file_name = input('请输入文件名:')
- words = input('请输入要替换的文字:')
- new_words = input('请输入新的文字:')
- change(file_name,words,new_words)
复制代码
代码如上,求问里面为什么需要一个content?按这样写法的话content的内容不是应该要被替换的字而不是新字吗?
def change(file_name,words,new_words):
f = open(file_name)#打开文件
count = 0
content = []
for each_line in f:#迭代这个文件
if words in each_line:#words存在each_line里面,执行下面内容
count = each_line.count(words)#count()函数,统计words出现的次数
each_line = each_line.replace(words, new_words)#replace()函数,替换指定的字符串,还可以指定替换的次数
content.append(each_line)#添加each_line进入content列表
decide = input('\n文件%s中共有%s个【%s】,\n你确定要把【%s】换成【%s】吗?\n【Yes or No】:' \
% (file_name, count, words, words, new_words))#接收用户输入指令
if decide in ['yes','Yes','YES']:
f_write = open(file_name,'w')
f_write.writelines(content)#将存入content列表中的字符串存入file_name文件中
f_write.close()#关闭文件
f.close()#关闭文件
file_name = input('请输入文件名:')
words = input('请输入要替换的文字:')
new_words = input('请输入新的文字:')
change(file_name,words,new_words)
楼主replace()是替换指定的字符串,而且注意最后文件打开方法为'w',它会直接覆盖掉原本的文件内容,content这个列表里面放入的是不存在指定替换字符的语句和被替换过的语句的
|
|