繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM