本指南提供了几种使用Python来获取大型CSV文件行数的方法,并解释了每种方法的适用场景。
方法1: 使用csv.reader
处理复杂CSV文件
当你的CSV文件中包含多行字段(即某些字段的值中包含换行符)时,使用csv.reader
是一个可靠的选择,因为它能够正确处理这些复杂情况。
这个方法适用于大多数大小的CSV文件,但是对于非常大的文件,读取整个文件可能会占用较多的时间和内存。对于极大的文件,考虑使用分块读取或其他高效的数据处理技术。
PS:我的CSV数据文件大小为5.24GB,电脑主存16GB,跑这段代码的时候,在中间时段主存能占用到80%+。
import csv
# 定义一个函数来计算CSV文件的行数
def count_csv_rows(file_path):
# 使用'with'语句打开文件,确保文件最后能够被正确关闭
with open(file_path, 'r', encoding='utf-8') as file:
# 创建一个csv.reader对象来读取文件
csv_reader = csv.reader(file)
# 使用生成器表达式计算行数
row_count = sum(1 for row in csv_reader)
# 返回总行数
return row_count
# 指定CSV文件的路径
file_path = 'your_large_file.csv'
# 调用函数并打印文件的行数
print(f"The CSV file has {count_csv_rows(file_