Python TypeError when using variable in re.sub
我刚接触过python,做最简单的事情时总是出错。
我试图在正则表达式中使用一个变量,并将其替换为*
下面的错误是"typeerror:不是所有的参数在字符串格式化期间都被转换了",我不知道为什么。这应该很简单。
1 2 3 4 | import re file ="my123filename.zip" pattern ="123" re.sub(r'%s',"*", file) % pattern |
错误:回溯(最近一次呼叫的最后一次):文件",第1行,在?类型错误:并非所有参数都在字符串格式化过程中转换
有什么小窍门吗?
问题出在这条线上:
1 | re.sub(r'%s',"*", file) % pattern |
您要做的是将文本中来自字符串
1 | 'this is a string' % ("foobar!") |
这会给你同样的错误。
你可能想要的是:
1 | re.sub(str(pattern),'*',file) |
完全等同于:
1 | re.sub(r'%s' % pattern,'*',file) |
试试