Python 2.7 如何匹配给定输入值的文本并添加缩进行
我有以下示例文本文件。我指定了一个我想要搜索的输入值,在本例中是单词“car”,然后我想将匹配的行“thisacar”和它下面缩进两个空格的所有行添加到一个列表中Python 2.7 如何匹配给定输入值的文本并添加缩进行,python-2.7,Python 2.7,我有以下示例文本文件。我指定了一个我想要搜索的输入值,在本例中是单词“car”,然后我想将匹配的行“thisacar”和它下面缩进两个空格的所有行添加到一个列表中 如何搜索文本(“这是一个”+我的输入值) 在与列表进行匹配后,我如何才能只添加缩进行 这是文本文件的示例: 这是一辆汽车 它是红色的 它有大轮子 手动变速器 这是一只狗 它是棕色的 还有长长的毛皮 我想它在伪代码中会像这样 def action(self, filename, input): with open(filen
这是一辆汽车
它是红色的
它有大轮子
手动变速器
这是一只狗
它是棕色的
还有长长的毛皮
我想它在伪代码中会像这样
def action(self, filename, input):
with open(filename, 'rb') as f:
text = f.readlines()
output = []
for lines in text:
if ("this is a" + input) in lines:
i = lines.strip()
output.append(i)
goto next line
while there is a single space
i = lines.strip()
output.append(i)
然后,如果我打印输出,我将看到以下内容:
这是一辆汽车它是红色的
它有大轮子
手动变速器
当您通过
查找文本中的行时,会有一个标志,表明您当前是在查找起始文本(这是一辆车)还是在查找以下文本(以空格开头的行)
在伪代码中:
looking_for_indents = False
for line in text:
if ("this is a " + input) in line:
print line
looking_for_indents = True
continue
if looking_for_indents:
if line.startswith(' '):
print line
else
# that's all of them, stop looking
looking_for_indents = False
旁白:
input
是Python中的内置函数;将你的论点命名为“输入”是不好的做法
- lines.strip()去掉了开始/结束空格,如果您正在查找它们,它将毫无帮助
readlines()
返回字符串列表,for
逐字符串迭代<代码>对于文本中的行
意味着行
是复数,但不是复数
谢谢您提供的信息。根据你的建议,我现在得到了匹配的缩进。但是我该如何编写代码来搜索(“这是一个”+输入)?还有,我可以用什么来代替strip()来维护开始/结束空格呢?我得到了搜索字符串+输入的代码,只是一个愚蠢的错误。但是期待有人能告诉我用什么来代替strip()来维护起点/终点spaces@mmxool什么意思?用什么代替脱衣舞。。。实现什么?