我需要使用Python打印“List A
”的{}
中的行。我正在读出行并搜索字符串List A
,但我不确定如何只显示{}
中的行。你知道吗
示例:
List A
{
name,
place,
animal,
thing
}
List B
{
Cat,
Dog,
}
更新:我试过指纹(重新编译('List A\n\{\n(.*)\n\}',关于多行| 关于DOTALL) .search(s).groups()[0]),但它不起作用。给我找不到错误组。你知道吗
我试图找到字符串“列表B”,但这种力量也工作。我已经把代码贴在下面了。你知道吗
import sys
input_file = open(r'path/input.txt')
Output_file = open('path/output.txt','w')
input_file_read = input_file.read()
for line in str(input_file_read):
output_file.write(line)
if line == "List B":
next(line)
print line
输入\文件\读取是为读取而打开的输入文件,输出\文件是为写入输出而打开的输出文件。你知道吗
问:有人能告诉我为什么if语句不搜索字符串吗??我怎样才能在众多的名单中找到B名单??我只给出了一个输入文件的示例,但是在那30个文件中有许多相同格式的列表。谢谢你的帮助!!!你知道吗
如果从包含文本的字符串
input_str
开始,那么使用正则表达式应该很快:给予
您可以在正则表达式中看到文本的结构(
\n
是一个新行)。.*?\n\}
匹配所有字符(.*
表示任意数量的任意字符,包括换行符,这要归功于DOTALL
)…但是当它遇到第一个右大括号时(得益于?
),就停止。\s*
表示不同数量的空格(因为问题中的大括号并不总是恰好位于行的开头)。你知道吗如果您从一个文件开始,比如在您的示例中,那么可以使用上面的解决方案(使用
input_str = input_file.read()
),但是这有点浪费(因为这不必要地读取组的列表)。因此,另一种可能性是逐行读取文件,并动态地开始和停止收集数据(使用有限自动机)。但是,这似乎并不方便(除非您使用外部解析模块)。所以,如果您的文件不是太大,我认为上面的正则表达式解决方案是合适的。你知道吗处理任何列表名的更通用示例:
输出:
相关问题 更多 >
编程相关推荐