在Python中统计文本文件的行数,你可以使用以下几种方法:
1. 使用`readlines()`方法:
```python
def count_lines(filename):
with open(filename, 'r') as file:
lines = file.readlines()
return len(lines)
filename = 'example.txt'
line_count = count_lines(filename)
print(f'文件 {filename} 共有 {line_count} 行。')
2. 使用`enumerate()`函数:```pythondef count_lines(filename):
with open(filename, 'r') as file:
line_count = 0
for line in file:
line_count += 1
return line_count
filename = 'example.txt'
line_count = count_lines(filename)
print(f'文件 {filename} 共有 {line_count} 行。')
3. 使用`len()`函数直接对文件对象操作(适用于文件较小的情况):
```python
def count_lines(filename):
with open(filename, 'r') as file:
return len(file.readlines())

filename = 'example.txt'
line_count = count_lines(filename)
print(f'文件 {filename} 共有 {line_count} 行。')
4. 使用`for`循环逐行读取文件(适用于大文件,节省内存):```pythondef count_lines(filename):
line_count = 0
with open(filename, 'r') as file:
for line in file:
line_count += 1
return line_count
filename = 'example.txt'
line_count = count_lines(filename)
print(f'文件 {filename} 共有 {line_count} 行。')
5. 使用`buffer`读取文件的一部分内容,然后统计换行符的数量(适用于非常大的文件):
```python
def count_lines(file_path):
line_count = 0
with open(file_path, 'rb') as file:
buffer = file.read(1024 * 8192)
while buffer:
line_count += buffer.count(b'\n')
buffer = file.read(1024 * 8192)
return line_count
file_path = 'example.txt'
line_count = count_lines(file_path)
print(f'文件 {file_path} 共有 {line_count} 行。')
选择哪种方法取决于文件的大小以及你对内存使用的考虑。对于较小的文件,直接使用`len(file.readlines())`可能更快;而对于较大的文件,逐行读取或使用缓冲区方法会更加高效
