file_contents = x.read()
#print (file_contents)
for line in file_contents:
if "ase" in line:
print (line)
我正在查找文件中包含短语“ase”的所有句子。当我运行它时,什么都没有打印出来。
答案 0 :(得分:1)
由于file_contents
是x.read()
的结果,因此字符串不是字符串列表。
所以你要对每个角色进行迭代。
改为:
file_contents = x.readlines()
现在你可以搜索你的行了
或者如果您不打算重复使用file_contents
,请使用以下命令迭代文件句柄:
for line in x:
所以你不必readlines()
并将所有文件存储在内存中(如果它很大,它会有所作为)
答案 1 :(得分:1)
read
将返回文件的整个内容(不是逐行)作为字符串。所以当你迭代它时,你会迭代单个字符:
file_contents = """There is a ase."""
for char in file_contents:
print(char)
您可以简单地遍历文件对象(逐行返回):
for line in x:
if "ase" in line:
print(line)
请注意,如果您实际查找的是句子而不是包含'ase'
的行,则会更复杂一些。例如,您可以read
完整文件并在.
分割:
for sentence in x.read().split('.'):
if "ase" in sentence:
print(sentence)
但如果.
代表句子的结尾(如缩写),则会失败。