如何在 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
模块来处理您的论点。
我正在尝试使用命令提示符获取文件的行数。但是,当我执行代码时,我得到 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
模块来处理您的论点。