本帖最后由 逃兵 于 2021-6-28 10:19 编辑
指针的问题
第一遍遍历txt文本之后,指针会到最下方
之后再进行遍历会从指针开始的地方进行(也就是文件的末尾)
我们需要在第一次遍历文件之后,将指针位置复原到首位 file.seek(0)
另外,each.replace(rp_old,rp_new)不会改变each自身,而会生成一个新的字符串,我们需要将它赋值给新的变量名
最后不要忘记关闭文件
另附保存文件的代码
dakai = input("请输入文件名:")
file = open(dakai)
file_new = []
rp_old = input("请输入要替换的单词或是字符:")
rp_new = input("请输入新的单词或是字符:")
count = 0
for each in file :
if rp_old in each:
count += 1
print("文件:{0}中共有{1}个【{2}】".format(dakai,count,rp_old))
print("你确定要把所有的【{0}】替换为【{1}】吗?".format(rp_old,rp_new))
queding = (input("【YES/NO】:"))
file.seek(0) #将指针复原到首位
if queding == "yes" :
for each in file :
if rp_old in each:
temp = each.replace(rp_old,rp_new) #将each.replace(rp_old,rp_new) 的返回值赋值给变量temp
file_new.append(temp)
print(file_new)
else :
file_new.append(each)
print(file_new)
file.close()
#文件写入
file = open(dakai,'w')
for i in file_new:
file.write(i)
file.close()
|