|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
dakai = input("请输入文件名:")
file = open(dakai)
file_new = []
rp_old = input("请输入要替换的单词或是字符:")
rp_new = input("请输入新的单词或是字符:")
count = 1
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】:"))
if queding == "yes" :
for each in file :
if rp_old in each:
each.replace(rp_old,rp_new)
file_new.append(each)
print(file_new)
else :
file_new.append(each)
print(file_new)
###-----------以上代码 出来的 file_new 列表是个空的,老是查不到原因???
###------------------------- 这样写可以加进列表file_new
dakai = input("请输入文件名:")
file = open(dakai)
file_new = []
rp_old = input("请输入要替换的单词或是字符:")
print(type(rp_old))
rp_new = input("请输入新的单词或是字符:")
print(type(rp_new))
for each in file :
file_new.append(each)
print(file_new)
谢谢~
本帖最后由 逃兵 于 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()
复制代码
|
|