正規表現を使用してリスト内の可変長項目を置き換えようとしています。たとえば、この項目「HD479659」は「HD0000000479659」に置き換えてください。次のプログラムを作成しましたが、実行するたびに次のエラーが発生しました:「TypeError: '_sre.SRE_Pattern' 型のオブジェクトには len() がありません」. このエラーを解決する方法を教えてください。
どうもありがとうございます
プログラムはこちら
import xlrd
import re
import string
wb = xlrd.open_workbook("3_1.xls")
sh = wb.sheet_by_index(0)
outfile=open('out.txt','w')
s_pat=r"HD[1-9]{1}[0-9]{5}"
s_pat1=r"HD[0]{7}[0-9]{6}"
pat = re.compile(s_pat)
pat1 = re.compile(s_pat1)
for rownum1 in range(sh.nrows):
str1= str(sh.row_values(rownum1))
m1=[]
m1 = pat.findall(str1)
m1=list(set(m1))
for a in m1:
a=re.sub(pat,pat1,a)
print >> outfile, m1