gpt4 book ai didi

在 re.sub 中使用变量时出现 Python TypeError

转载 作者:太空宇宙 更新时间:2023-11-03 13:48:21 24 4
gpt4 key购买 nike

我是 python 的新手,我总是在做最简单的事情时出错。

我正在尝试在正则表达式中使用变量并将其替换为 *

以下内容让我收到错误“TypeError:并非所有参数都在字符串格式化期间转换”,我不知道为什么。这应该很简单。

import re
file = "my123filename.zip"
pattern = "123"
re.sub(r'%s', "*", file) % pattern

错误:追溯(最近一次通话): 文件“”,第 1 行,在?类型错误:并非所有参数在字符串格式化期间都已转换

有什么建议吗?

最佳答案

你的问题出在这条线上:

re.sub(r'%s', "*", file) % pattern

您正在做的是在字符串 file 的文本中用 * 替换每次出现的 %s(在本例中,我建议重命名变量 filename 以避免隐藏内置 file 对象并使其更明确你正在使用的内容)。然后您尝试将(已替换的)文本中的 %s 替换为 pattern。但是,file 中没有任何格式修饰符,这会导致您看到 TypeError。它基本上与:

'this is a string' % ("foobar!")

这会给你同样的错误。

您可能想要的更像是:

re.sub(str(pattern),'*',file)

这完全等同于:

re.sub(r'%s' % pattern,'*',file)

关于在 re.sub 中使用变量时出现 Python TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14741965/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com