计算行数并对其进行编号

时间:2012-03-13 20:22:26

标签: python file line string

另一个问题。

该程序对代码中的每一行进行计数和编号,除非它有一个哈希标记或该行为空。我得到它除了哈希标签之外的每一行编号。怎么能阻止它计算空行?

  def main():

    file_Name = input('Enter file you would like to open: ')

    infile = open(file_Name, 'r')

    contents = infile.readlines()
    line_Number = 0
    for line in contents:
        if '#' in line:
            print(line)
            if line == '' or line == '\n':
                print(line)
        else:
            line_Number += 1 
            print(line_Number, line)

    infile.close()

main()

2 个答案:

答案 0 :(得分:3)

您检查line == '' or line == '\n'的{​​{1}}条款中if是否'#' in lineTrue无法if line == '' or line == '\n':。 基本上,您需要将if '#' in line or not line or line == '\n': print line 行移到左侧:)

此外,您可以结合这两种情况,因为您执行相同的操作:

'\n'

但实际上,为什么需要打印空蜇或line == '\t'

编辑: 如果if '#' in line or not line.strip()等其他情况应该以同样的方式对待,那么最好使用Tim的建议并执行:{{1}}。

答案 1 :(得分:0)

您可以通过在for循环的开头添加以下内容来跳过空行:

if not line:
    continue

在Python中,空字符串的计算结果为布尔值True。如果这意味着跳过空行,因为当字符串为空时,此if语句仅为True。

语句continue表示代码将在下一次循环中继续。它不会在该语句之后执行代码,这意味着将跳过计算行数的代码。