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 一个字符串。因此,只需在每次迭代时分割,如上面的示例所示。

关于python - 如何打印文件中特定长度的行(Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23034367/

相关文章:

java - 将txt文件移动到文件夹而不是在java中删除它们

java - FileInputstream - FileNotFound(进程无法访问文件)。适用于应用断点

c++ - 如何使用 ifstream (C++) 只读取一些以前知道的行

python - 帮助解决读取文件时出现 IOError 的问题

Python 的 `concurrent.futures` : Iterate on futures according to order of completion

python - 我应该如何绘制 XYZ 数据点以在 python 中创建 RGB 深度图像

python 正则表达式跳过可选单词不起作用

python - 如何为 Scikit Learn 重新格式化分类 Pandas 变量

python - Scrapy从第一个元素和帖子标题收集数据

java - Windows 7 - 将文件类型与 Jar 程序相关联