【问题标题】:Skipping Blank lines in read file python跳过读取文件python中的空白行
【发布时间】:2019-03-11 07:30:31
【问题描述】:

我正在做一个很长的项目,我已经完成了所有工作,但是在他希望我们阅读的文件底部有空格,合法的只是我们不允许删除的空格,可以工作在项目中我删除了它们,因为我不知道如何绕过它,所以我当前的打开/读取看起来像这样

      file = open("C:\\Users\\bh1337\\Documents\\2015HomicideLog_FINAL.txt" , "r")
 lines=file.readlines()[1:]
 file.close()

我需要添加什么来忽略空行?还是在到达空白行时停止?

【问题讨论】:

  • 行可以有空格或制表符,看起来像空的。
  • 使用for line in file: if not line.strip(): print("it is empty line")
  • 很确定一个空列表有一个 False 布尔值。

标签: python readfile


【解决方案1】:

您可以检查它们是否为空:

file = open('filename')
lines = [line for line in file.readlines() if line.strip()]
file.close()

【讨论】:

    【解决方案2】:
    for line in file:
      if not line.strip():
        ... do something
    

    以下最适合 readinf 文件

    with open("fname.txt") as file:
        for line in file:
          if not line.strip():
            ... do something
    

    With open 将负责关闭文件。

    如果你想忽略只有空格的行

    【讨论】:

    • 当你说...做某事时,我可以把file.close 放在那里吗?
    • @BraydenHark with 子句消除了显式 file.close 的需要
    • 那么我会为做某事投入什么......?或者我可以把它留空吗?抱歉,我对编码非常陌生,我不确定它是否适合我 =/
    • 使用这种方法我得到一个错误“列表索引超出范围”这是代码with open("C:\\Users\\Brayd\OneDrive\\Documents\\2015HomicideLog_FINAL.txt") as file: for line in file: lines=file.readlines()[1:] if not line.strip(): lines=file.readlines()[1:]我尝试用file.close()print("it is empty line")替换底部命令,但似乎没有任何工作
    • 如果我删除 .txt 文件底部的空格,运行得非常好,但是我的教授希望我们阅读的文件底部有空格,知道吗? @backtrack
    【解决方案3】:

    这是一个非常简单的跳过空行的方法:

    with open(file) as f_in: 
        lines = list(line for line in (l.strip() for l in f_in) if line)
    

    【讨论】:

      【解决方案4】:
      1. 一种方法是使用lines 列表并删除所有元素e,使e.strip() 为空。这样,您可以删除所有仅包含空格的行。
      2. 其他方法是使用f.readline 而不是f.readlines(),它将逐行读取文件。首先,初始化一个空列表。如果当前读入的行在剥离后为空,则忽略该行并继续读取下一行。否则将读取的行添加到列表中。

      希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 2013-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-07
        • 1970-01-01
        相关资源
        最近更新 更多