如何在文件中打印具有特定长度的行(Python)

  • 本文关键字:Python 文件 打印 python file
  • 更新时间 :
  • 英文 :


我是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是一个文件对象,而不是字符串。

相关内容

  • 没有找到相关文章

最新更新