在文本文件Python中搜索字母
我想知道是否有人能帮我。我是Python的初学者。我想做的是键入任何字母,程序必须在包含对象列表的文本文件中找到它们。它必须打印包含所有字母的对象,没有特定顺序。 例如,我有一个包含5个单词的文本文件:在文本文件Python中搜索字母,python,Python,我想知道是否有人能帮我。我是Python的初学者。我想做的是键入任何字母,程序必须在包含对象列表的文本文件中找到它们。它必须打印包含所有字母的对象,没有特定顺序。 例如,我有一个包含5个单词的文本文件: yellow morning sea soiberg sand 我希望程序显示包含字母“goi”的所有单词 结果: morning soiberg 此刻我所拥有的是: with open('d:\lista.txt', 'r') as inF: l = input("Buscar: "
yellow
morning
sea
soiberg
sand
我希望程序显示包含字母“goi”的所有单词
结果:
morning
soiberg
此刻我所拥有的是:
with open('d:\lista.txt', 'r') as inF:
l = input("Buscar: ")
for line in inF:
if l[0] in line:
if l[1] in line:
if l[2] in line:
print(line)
但如果我只想找到2个字母或5个或7个呢。我不知道该怎么办您可以使用:
示例:
>>> strs = "goi"
>>> line = "morning"
>>> all(c in line for c in strs)
True
>>> line = "soiberg"
>>> all(c in line for c in strs)
True
>>> line = "sea"
>>> all(c in line for c in strs)
False
请注意,您应该为windows文件路径使用原始字符串,否则文件路径中类似于'\t'
的内容将转换为选项卡空间,您将得到一个错误
r'd:\lista.txt'
我会使用一个集合,在匹配线上构建一个生成器,然后迭代:
with open('input') as fin:
letters = set(raw_input('Buscar: '))
matches = (line for line in fin if not letters.difference(line.strip())
for match in matches:
# do something
这是使用简单工具的另一种方法:
with open(r'd:\lista.txt', 'r') as inF:
l = input("Buscar: ")
for line in inF:
counter=0
for letter in l:
if letter in line:
counter+=1
if counter==len(l):
print(line)
with open(r'd:\lista.txt', 'r') as inF:
l = input("Buscar: ")
for line in inF:
counter=0
for letter in l:
if letter in line:
counter+=1
if counter==len(l):
print(line)