我有一个~/practice/search_from看起来像这样的文件:From issdfadfksjaflkfasdfasfadfsdfdfssgdggggggggggggsdgsgsdgFrom jdasdfewfsdfasadsf我想打印以 From 开头的行。所以我在 python 提示中做了以下操作:>>> fhandle=open('practice/search_from')>>> for line in fhandle:... if not line.startswith('From '):... continue... else:... print(line.rstrip())... From iFrom j这段代码似乎工作正常。然而,当我把>>> fhandle=open('practice/search_from')>>> for line in fhandle:... line = line.rstrip()... if not line.startswith('From:') :... continue... print(line)... 或者>>> fhandle=open('practice/search_from')>>> for line in fhandle:... line = line.rstrip()... if not line.startswith('From:') :... continue... else:... print(line)没有打印出来。为什么会这样?有没有办法修复最后两个代码?
2 回答
饮歌长啸
TA贡献1951条经验 获得超3个赞
您的代码很好,除了您正在使用From:.
colon(:)从您的代码中删除,它将正常工作:
In [2296]: fhandle=open('practice/search_from')
In [2297]: for line in fhandle:
...: line = line.rstrip()
...: if not line.startswith('From'):
...: continue
...: print(line)
...:
From i
From j
繁华开满天机
TA贡献1816条经验 获得超4个赞
没有打印出任何内容,因为您的文件中没有任何行以From:
.
line.startswith('From:')
True
仅当该行以“From:”(包括冒号)开头时才会出现。因此not line.startswith('From:')
将始终True
在您的文件中(没有以 开头的行From:
),并且您将始终评估该continue
行,该行跳转到for
循环的下一次迭代。
添加回答
举报
0/150
提交
取消