【问题标题】:How to find number of lines in text file using python? [duplicate]如何使用python查找文本文件中的行数? [复制]
【发布时间】:2014-07-17 06:20:06
【问题描述】:
  1. 我需要从给定的 .tst 文件中获取一个文本文件...并找到其中的行数
  2. 我得到 0 作为输出..
  3. 我需要执行两次程序才能获取这些文本文件
  4. 我的代码有问题吗??
name_of_file = raw_input("tst file address please:")

import re
f = open(name_of_file+".tst",'r')
data = f.read()
y = re.findall(r'Test Case:(.*?)TEST.UNIT:',data,re.DOTALL)
fb = open('tcases.txt' ,'w' )
for line in y :
 fb.write(line)
z = re.findall(r'TEST.SUBPROGRAM:(.*?)TEST.NEW',data,re.DOTALL)
fc = open('tsubprgs.txt' ,'w' )
for line in z :
 fc.write(line)
x = re.findall(r'TEST.UNIT:(.*?)TEST.SUBPROGRAM:',data,re.DOTALL)
fa = open('tunits.txt' ,'w' )
for line in x :
 fa.write(line)

with open('tunits.txt') as foo:
 lines = len(foo.readlines())
 print lines

【问题讨论】:

  • 您是否检查过x = re.findall(r'TEST.UNIT:(.*?)TEST.SUBPROGRAM:',data,re.DOTALL) 是否匹配任何内容?你手动检查tunits.txt文件是否为空?
  • 是的......我检查了它......发现它是空的......哦,顺便说一句,问题解决了......我刚刚添加了这个 fa.close()......一切看起来都很好。 . 无论如何谢谢
  • @user3682409 那你应该自己添加一个答案。

标签: python


【解决方案1】:

试试这个

with open(<pathtofile>) as f:
      print len(f.readlines())

【讨论】:

    【解决方案2】:

    在您的示例中,re.findall() 返回一个列表,您无需重新打开并计算结果文件即可获取该列表的匹配数,例如:

    x = re.findall(r'TEST.UNIT:(.*?)TEST.SUBPROGRAM:',data,re.DOTALL)
    num_tunits = len(x)
    

    有关文件行计数的想法,请参阅 other answers

    【讨论】:

    • 谢谢你..它工作.. :)
    【解决方案3】:
    myfile = "names.txt"
    
    num_names = 0
    
    with open(myfile, 'r') as f:
        for line in f:
        names = line.split()
    
        num_names += len(names)
    
    print (num_names)
    

    【讨论】:

    • 您可以通过添加解释此代码的作用以及它如何解决问题的文本来使此答案更有用。教导的答案比没有解释的代码有用得多。
    猜你喜欢
    • 2016-06-29
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 2016-02-14
    相关资源
    最近更新 更多