到目前为止,我可以编写代码来过滤掉长度小于8个字符的单词以及包含#,@或:符号的单词。但是我无法弄清楚如何才能得到最后的话。到目前为止,我的代码看起来像这样。
f = open("file.txt").read()
for words in f.split():
if len(words) >= 8 and not "#" in words and not "@" in words and not ":" in words:
print(words)
编辑 - 对不起我对此很新,所以我也可能在上面做错了。该文件非常长,因此给出了第一行和预期的输出。第一行是:
"我希望他们能够展示Dick Cheney的作品#GOPdebates候选人在#GOPdebate中追随@HillaryClinton 32次 - 但仍然是#34;
预期产量是"保持"但我的代码输出"候选人"并且"保持"。
答案 0 :(得分:0)
for line in open(filename):
if some_test(line):
do_rad_thing(line)
我认为你想要的是......你有some_test
部分和do_rad_thing
部分
答案 1 :(得分:0)
我认为这样可行:您可以使用readlines打开文件并在split()中传递分隔符,然后使用[-1]获取最后一个。
f = open(“file.txt”)。realines() 对于f中的行: last_word = line.split()[ - 1]
答案 2 :(得分:0)
这应该完成你想要做的事情。
使用.split()
将文件拆分为数组,然后使用[-1]
访问最后一个值。我还将所有非法字符放入一个数组中,然后检查illegal_chars
数组中的任何字符是否都在last_word
。
f = open("file.txt").read()
illegal_chars = ["#", "@", ":"]
last_word = f.split()[-1]
if( len(last_word) >= 8 and illegal_chars not in last_word:
print(last_word)