在Python 2.7中,可以使用csv模块来正确拆分CSV文件。下面是一个示例代码,展示了如何拆分CSV文件:
import csv
def split_csv_file(input_file, output_prefix, chunk_size):
with open(input_file, 'r') as file:
reader = csv.reader(file)
header = next(reader) # 获取CSV文件的头部
chunk_count = 1
current_chunk_size = 0
current_chunk_rows = []
for row in reader:
current_chunk_rows.append(row)
current_chunk_size += 1
if current_chunk_size >= chunk_size:
output_file = f"{output_prefix}_{chunk_count}.csv"
with open(output_file, 'w') as output:
writer = csv.writer(output)
writer.writerow(header)
writer.writerows(current_chunk_rows)
chunk_count += 1
current_chunk_size = 0
current_chunk_rows = []
# 处理剩余的行
if current_chunk_size > 0:
output_file = f"{output_prefix}_{chunk_count}.csv"
with open(output_file, 'w') as output:
writer = csv.writer(output)
writer.writerow(header)
writer.writerows(current_chunk_rows)
# 示例用法
split_csv_file('input.csv', 'output', 1000)
上述代码中,split_csv_file
函数接受三个参数:input_file
表示输入的CSV文件名,output_prefix
表示输出文件的前缀,chunk_size
表示每个拆分文件的行数。
代码首先打开输入文件,并创建一个CSV读取器。然后,它使用next
函数获取CSV文件的头部,并将其保存在header
变量中。
接下来,代码使用一个循环遍历CSV文件的每一行。它将每一行添加到current_chunk_rows
列表中,并增加current_chunk_size
计数器。当current_chunk_size
达到指定的chunk_size
时,代码将当前的行写入一个输出文件,并重置计数器和行列表。
最后,代码处理剩余的行,以确保所有行都被正确拆分到输出文件中。
请注意,上述示例代码仅适用于Python 2.7版本。在较新的Python版本中,可以使用更简洁的语法和功能来处理CSV文件。
领取专属 10元无门槛券
手把手带您无忧上云