Python 在两个定义的变量之间提取文本

Python 在两个定义的变量之间提取文本,python,Python,我有以下代码: import re p = 1 while p < 10 and p>= 1: p = p+ 1 primer = ("Artículo %so" % (p-1)) ultimo = ("Artículo %so" % (p)) with open("LISR.txt") as ley: texto_original = ley.read() fragmento = str(re.findall((r'p

我有以下代码:

import re
p = 1
while p < 10 and p>= 1:
    p = p+ 1
    primer = ("Artículo %so" % (p-1))
    ultimo = ("Artículo %so" % (p))
    with open("LISR.txt") as ley:
        texto_original = ley.read()
        fragmento = str(re.findall((r'primer(.*?)ultimo', texto_original, re.DOTALL))
这会引发以下错误:

TypeError: not enough arguments for format string

我应该如何解决这个问题?

解释器不清楚哪些参数会转到findall,哪些参数将用于格式化字符串:

fragmento = str(re.findall((r'%s(.*?)%s' % (primer, ultimo)), texto_original, re.DOTALL))
从重点矿

若格式需要单个参数,则值可以是单个非元组对象。[5] 否则,值必须是具有格式字符串指定的项数的元组,或者是单个映射对象(例如,字典)

因此,您只需像这样将变量用括号括起来,以匹配两个%s格式参数

(r'%s(.*?)%s' % ( primer, ultimo ) )
                ^                ^
(r'%s(.*?)%s' % ( primer, ultimo ) )
                ^                ^