[英]How to print lines with a certain length in a file(Python)
我是python的新手。 我有一个每行有一个随机单词的文档。 这个文件中有数千个单词。 我试图只打印四个字母长的单词。 我试过这个:
f=open("filename.txt")
Words=f.readlines()
for line in f:
if len(line)==4:
print(line)
f.close()
但是当我这样做时,python是空白的。 我假设我也需要剥离空格,但是当我这样做的时候
f.strip()
我收到一条错误,指出.strip()不适用于列表项。 任何帮助都很感激。 谢谢!
'Python为空',因为您尝试第二次迭代该文件。
第一次是readlines()
,所以当迭代完成时,你就在文件的末尾。 然后,当你for line in f
你已经在文件的末尾,所以没有任何东西需要迭代。 要解决此问题,请将调用放到readlines()
。
为了做你想做的事,我会这样做:
with open('filename.txt') as f:
for line in f: # No need for `readlines()`
word = line.strip() # Strip the line, not the file object.
if len(word) == 4:
print(word)
f.strip()
会发生另一个错误,因为f
是一个文件对象 - 但是你只strip
一个字符串。 因此,只需在每次迭代中拆分line
,如上例所示。
你应该做:
for line in Words:
代替
for line in f:
你想要line.strip()
因为f是一个文件对象,而不是一个字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.