python怎么实现字符串和数字的转换

【求助】python如何实现字符串和数字的转换
从文件读取出字符串 要把一部分实现++,
举例:AT005CC56,要把AT后面的数字++,改成006,再写回去

要把字符串转换成数字,再转回去,求教大侠如何实现,多谢



------解决方案--------------------
这样是否满足?!
Python code

>>> STR
'AT005CC56'
>>> m = re.findall('[0-9]+',STR)
>>> m[0]=(int(m[0])+1).__str__().rjust(3, '0')
>>> s = re.sub(re.findall('[0-9]+',STR)[0], m[0], STR)
'AT006CC56'

------解决方案--------------------
用正则吧:
Python code
import re
a = 'AT005CC56'
reg = re.compile(r'AT(\d+?)[^\d]+?\d*')
match = reg.search(a)
if match is not None:
    num = match.groups()[0]
    format = 'AT%' + '0%dd' % len(num)
    a = reg.sub(format % (int(num)+1), a)

print a

------解决方案--------------------
import re
stram='abc12def000007bcdAB005ABC62b' 
fi=re.findall(r'[0-9]+',stram)
for eachNum in fi:
format = '%' + '0%dd' % len(eachNum)
stram=stram.replace(eachNum,format %(int(eachNum)+1))

print stram
------解决方案--------------------
对字符串执行eval可以获得对应的数值,比如eval("134")得到134,
对数字执行str可以获得对应的字符串
不过eval不是很安全,比如你的字符串是从用户来的,用户可能会给你一个删除文件的字符串,建议使用pickle
------解决方案--------------------
嗯,是有因数字相同换错的情形,而且replace/sub本身会再次查找,效率应该会差点,可以先记录匹配位置,最后再一次性替换。譬如,我想递增AB后面数字,可如下:
Python code
import re

text = 'A100R200C555B555'
robj = re.compile(r'(?<=[AB])\d+')
found = []
beg = 0
end = len(text)
while beg < end:
    mobj = robj.search(text, beg)
    if not mobj:
        break
    beg = mobj.end()
    found.append((mobj.start(), mobj.end()))
    
rep = text
for beg, end in found:
    num = str(int(text[beg:end])+1).zfill(end-beg)
    rep = rep[:beg] + num + rep[end:]
    
print found
print rep

------解决方案--------------------
探讨
各位,我的字符串是这样的 A100R200C555B555,几个前后几个字母后面的数字有可能相同的,但只要改B后面的。
如果用replace 或者sub ,会将C后面的也替换掉。

------解决方案--------------------
好像str.replace()默认替换所有吧...
------解决方案--------------------
探讨
各位,我的字符串是这样的 A100R200C555B555,几个前后几个字母后面的数字有可能相同的,但只要改B后面的。
如果用replace 或者sub ,会将C后面的也替换掉。