我有一个包含几行文本的文本文件。我需要过滤掉所有以小写字母开头的行,只打印以大写字母开头的行。如何在Python中执行此操作?在
我试过了:
filtercase =('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z')
out = []
ins = open("data.txt","r")
for line in ins:
for k in filtercase:
if(not(line.startswith(k))):
out.append(line)
如果行以除“a”以外的任何小写字母开头,则仍将打印这些行。我不知道如何更改代码以使其工作。感谢任何帮助。在
编辑时间: 我有更多像这样的停止语列表,我需要应用到行。所以它不仅仅是大写或小写。在
以下方法应该有效。
此解决方案使用regexp,并且只匹配以大写字母开头且不包含stopword中任何单词的行。注意,例如,如果其中一个停止字是
'me'
,那么'messenger'
行将不匹配。原始代码迭代filtercase中的每个字母。如果每一个字母的每一行都不是以它开头的,那么就把它附加到输出列表中。但是很明显,每一行都会被多次追加,因为要使一行不被追加到
out
,它必须以'a'
、'b'
、'c'
开头,以及过滤器列表中的每一个字母。相反,您需要遍历}为真。如果
filtercase
,并且需要找到k
的一个实例,其中{line.startswith
中有filtercase
中的任何短语,则不要追加它;但是如果它成功地迭代了整个列表而不从其任何元素开始,则追加。Python的for else语法对于检查元素列表非常有用:
相关问题 更多 >
编程相关推荐