我是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
一个字符串。因此,只需在每次迭代时分割行
,如上面的示例所示。
关于python - 如何打印文件中特定长度的行(Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23034367/