如何在 Python 中获取文件的行数

How to get a line count of a file in Python

我正在尝试使用命令提示符获取文件的行数。但是,当我执行代码时,我得到 0.

的输出
import sys
file = open(sys.argv[1],"r")
lines=0
line=file.readline()
while line !="":
  lines=lines+1
  line=file.readline()
print("Lines:"+str(lines)+"\n")
file.close()

此代码运行良好,文件中的行 deleted.And 导致输出 0

我想你想要 readlines 而不是 readline

import sys
file = open(sys.argv[1],"r")
lines = file.readlines()
file.close()
line_count = len(lines)
print(f"There are {line_count} lines")

要获取行数,请尝试 this:

import sys, os

def file_len(fname):
    if os.stat(file_path).st_size == 0:
        print('File is empty')
        return 0
    with open(fname) as f:
        for i, l in enumerate(f):
            pass
    return i + 1

print(file_len(sys.argv[1]))
import sys
file = sys.argv[1]

with open(file, "r") as f:
    num_lines = len(f.readlines())

如果我 运行 在 MacOS 上使用 Python 3.8.5,你的代码 运行 对我来说没问题。

但是脚本可以稍微清理一下。在读取文件时使用 Python 的 open() 上下文处理程序是个好主意,readlines() 方法一次获取所有行,而 Python 的用于字符串格式化的内置工具。然后你可以像这样非常简单地完成整个计数:

import sys
with open(sys.argv[1]) as file:
    lines = len(file.readlines())
print(f"Lines: {lines}\n")

您可能还想考虑使用 Python 的 argparse 模块来处理您的论点。