import csv
def split_cookie_data(input_file, output_prefix, chunk_size=10000):
"""
Splits a cookie data CSV file into smaller files to reduce memory usage.
Args:
input_file (str): Path to the input CSV file.
output_prefix (str): Prefix for the output file names.
chunk_size (int): Number of rows per output file.
"""
try:
with open(input_file, 'r', newline='') as infile:
reader = csv.reader(infile)
header = next(reader, None) # Read the header row
chunk_num = 1
row_count = 0
outfile = None
writer = None
for row in reader:
if row_count % chunk_size == 0:
if outfile:
outfile.close()
output_file = f"{output_prefix}_part{chunk_num}.csv"
outfile = open(output_file, 'w', newline='')
writer = csv.writer(outfile)
if header:
writer.writerow(header)
chunk_num += 1
writer.writerow(row)
row_count += 1
if outfile:
outfile.close()
except FileNotFoundError:
print(f"Error: Input file '{input_file}' not found.")
except Exception as e:
print(f"An error occurred: {e}")
if __name__ == '__main__':
# Example usage:
split_cookie_data('cookies.csv', 'cookie_data', chunk_size=5000)
Add your comment