python 查找字符串并将其替换

查找某TXT文件里面“abcdef”是否存在,如果存在,则进行替换,替换成“123456”,
下面代码但是不能成功。望大侠能给帮助。

=========================代码==============
#!usr/bin/env python
import string
Num_List=['abcdef','123456','789012','fedcba','100000','200000']
f1=open('J:/wenjian/1/1.txt','r')

for line in f1:
for eachName in Num_List:
if not line.find(eachName)==-1:
if eachName=='abcdef':
line.replace(eachName,'123456') #这里替换不成功。
print ('zhaodao:' + eachName)
f1.close()
====================代码=======================
望大侠更更正或者有更好的代码。
我用的是python 3.3 .,如果带解释,且解释清楚,可以给双倍分。
问题已经解决:
==================代码======================
import re
#import string
f1=open('J:/wenjian/1/1.txt','r').read()
#print(f1)
#f1.decode()#把byte类型转换成string类型,这里注意,在py3.0中已经是unicode
f1=re.sub('abcdef','123456',f1)
#print (f1)#此时已经替换成功
f_w=open('J:/wenjian/1/1.txt','w')#新建一个文件,把替换后的内容写进去
#f1=f1.encode('utf-8')#从string转换成bytes类型,这里也不需要
f_w.write(f1)#必须要是bytes类型才能写进去
f_w.close()
=================代码结束====================
谢谢 “justistbc”网友。分就给你了。
在CSDN中找到了答案。
http://bbs.csdn.net/topics/390454102?page=1#post-394449861

import re
f1=open('J:/wenjian/1/1.txt','r').read()#把整个文件读进来作为整个字符串
f1 = re.sub('abcdef','123456',f1)#替换所有符合的情况
f_w=open('J:/wenjian/1/replace_1.txt','wb')#新建一个文件,把替换后的内容写进去
f_w.write(f1)
f_w.close()追问

>>>
Traceback (most recent call last):
File "J:/wenjian/python/seach2.py", line 5, in
f_w.write(f1)
TypeError: 'str' does not support the buffer interface
>>>
上面是运行的提示。

追答

好像是因为python 3版本,text和data是不一样的
在f_w.write(f1)之前,添加一句f1=f1.encode('utf-8')显式编码一下试试

追问

没有报错。但是文件中字符串并没有替换。我运行了多次。结果都一样。
你测试通过了么?

追答

import re
f1=open('J:/wenjian/1/1.txt','r').read()#把整个文件读进来作为整个字符串
f1=f1.decode()#把byte类型转换成string类型
f1 = re.sub('abcdef','123456',f1)#替换所有符合的情况
print f1#此时已经替换成功
f_w=open('J:/wenjian/1/replace_1.txt','wb')#新建一个文件,把替换后的内容写进去
f1=f1.encode('utf-8')#从string转换成bytes类型
f_w.write(f1)#必须要是bytes类型才能写进去
f_w.close()

#测试通过的,应该没问题了

追问

python 3.3 提示:
>>>
Traceback (most recent call last):
File "J:/wenjian/python/seach2.py", line 3, in
f1=f1.decode()#把byte类型转换成string类型
AttributeError: 'str' object has no attribute 'decode'
>>>
你用哪个版本? 我测试试试

追答

3.3.1

追问

测试还是不对。你版本肯定不是3.3.1

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-10
f1=open('J:/wenjian/1/1.txt','r')
for line in f1
你这里是不是少了点什么,f1只是文件句柄,需要执行读操作才能遍历,
调用readlines()

确实有更好的代码,那就是使用re.sub,它同时包含了查找和替换两步的操作,
而不是像你写的那样的字符串比较性能那么低
第2个回答  2013-05-10
line = line.replace(eachName,'123456')
第3个回答  2013-05-10
MARK

python如何替换特定字符串的字符串?
首先,使用find()函数可以找出特定字符串在原始字符串中的位置。例如,find("目标字符串")返回目标字符串在原始字符串中第一次出现的位置。如果未找到,返回-1。其次,使用index()函数与find()类似,但index()会在找到目标字符串后抛出异常,而不是返回-1。因此,index()通常用于确保目标字符串确实存...

python 查找字符串并将其替换
import re f1=open('J:\/wenjian\/1\/1.txt','r').read()#把整个文件读进来作为整个字符串 f1 = re.sub('abcdef','123456',f1)#替换所有符合的情况 f_w=open('J:\/wenjian\/1\/replace_1.txt','wb')#新建一个文件,把替换后的内容写进去 f_w.write(f1)f_w.close()...

Python字符串方法:字符串查找、替换、分割
替换功能则由replace()方法实现,它能替换源字符串中的特定子串。其基本用法如下:python source_string = "这是一个big字符串"old_substring = "big"new_substring = "small"new_string = source_string.replace(old_substring, new_substring)print(new_string)至于字符串分割,Python的split()方法就...

python字符串替换
以python3.8.5150.0版本为例,实现字符串替换时,可利用replace函数来实现,具体代码为:stringold.replace(strfrom,strto)。其中stringold就是需要更改的字符串,strfrom是需要替换的子字符串,strto是需要转换成的子字符串。Python是一种跨平台的计算机程序设计语言,也是一种面向对象的动态类型语言,...

手把手教你怎么用Python查找字符串
直到newstr中不再包含"a"为止。这个过程直观地展示了如何利用Python的find()函数来搜索和处理字符串。字符串查找不仅限于单个字符,你也可以对子串进行查找。只需将要查找的子串替换"a"即可。这不仅适用于查找,还可以用于截取、替换等字符串操作,使Python在处理文本数据时显得非常强大和灵活。

python如何用正则表达式匹配两个字符串之间的字符串中的某个字符并进 ...
你好,匹配和替换是两个操作,你可以分两步来做。第一步匹配:hit=re.search(“(\\<question\\>\\)”,inputstr)第二步替换 result=re.sub(‘”’,‘\\”’,inputstr)

python替换最后一个字符
题主是否想询问“python替换最后一个字符的方法”?python替换最后一个字符的方法如下:1、首先,使用切片操作获取除了最后一个字符之外的所有字符。2、其次,将最后一个字符通过字符串的replace方法替换为指定的字符。3、最后,将结果与原字符串拼接起来,替换完成。

Python教程(7)——一文弄懂Python字符串操作(上) |字符串查找|字符串...
可以使用索引运算符([])来访问字符串中的单个字符。字符串的第一个字符索引为0,最后一个字符索引为-1,可以使用负数进行倒序访问。例如:字符串还可以通过加号(+)进行拼接,例如:Python提供了丰富的字符串方法,用于处理字符串的操作,例如转换大小写、查找、替换等。还有格式化字符串的方法,用来...

python中怎么替换字符串
python 定义一个包含需要替换内容的字符串 original_string = "我喜欢吃苹果。"使用replace方法替换子串 new_string = original_string.replace # 将"苹果"替换为"香蕉"输出替换后的字符串 print # 输出:"我喜欢吃香蕉。"在这个例子中,"苹果"是被替换的子串,"香蕉"是替换后的新子串。`replace`...

Python字符串替换的3种方法
在Python中,字符串替换是一个常见的操作,本文将介绍三种主要的替换方法:replace()、translate()和re.sub()。首先,replace()方法是基础且直观的,它接受两个参数,旧字符串和新字符串,可设置替换次数。例如,你可以将"Hello"替换为"Hi",或者用换行符替换逗号。如果需要替换特定位置的字符,可以结合...

相似回答