split and merge file

本文介绍了在Mac和Windows平台上如何进行文件的分割与合并操作。对于Mac用户,可以通过使用split命令来分割文件,并利用cat命令将多个文件合并为一个整体。而Windows用户则可以借助copy命令的不同选项实现相同的功能。此外,还提到了使用WinRAR来进行文件分割的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mac:

split -b X filname outputfilename   //X is size, 10k or 100m

cat filename.01 filename.02 ... filename.20 > filename

 

Windows:

Copy 002.jpg/b + 001.txt/a 003.jpg  //b mean binary, a mean ASCII

Copy /b file1+file2 outputfile

//to split file, use winrar

import csv import os import argparse def split_csv(input_file, output_prefix, chunk_size=10000): """ 拆分CSV文件为多个小文件 :param input_file: 输入文件路径 :param output_prefix: 输出文件前缀 :param chunk_size: 每个分块的行数(不含表头) """ file_count = 1 with open(input_file, 'r', newline='', encoding='utf-8') as infile: reader = csv.reader(infile) header = next(reader) # 读取表头 while True: output_file = f"{output_prefix}_{file_count}.csv" row_count = 0 with open(output_file, 'w', newline='', encoding='utf-8') as outfile: writer = csv.writer(outfile) writer.writerow(header) # 写入表头 # 写入指定行数的数据 while row_count < chunk_size: try: row = next(reader) writer.writerow(row) row_count += 1 except StopIteration: break # 如果已读取所有数据则退出 if row_count < chunk_size: # 删除最后一个可能不完整的文件 if row_count == 0: os.remove(output_file) break file_count += 1 return file_count - (1 if row_count == 0 else 0) def merge_csv(input_files, output_file): """ 合并多个CSV文件 :param input_files: 输入文件路径列表 :param output_file: 输出文件路径 """ header_written = False with open(output_file, 'w', newline='', encoding='utf-8') as outfile: writer = csv.writer(outfile) for filename in input_files: with open(filename, 'r', newline='', encoding='utf-8') as infile: reader = csv.reader(infile) header = next(reader) # 读取表头 # 只写入一次表头 if not header_written: writer.writerow(header) header_written = True # 写入文件内容 for row in reader: writer.writerow(row) if __name__ == "__main__": parser = argparse.ArgumentParser(description='CSV文件拆分与合并工具') subparsers = parser.add_subparsers(dest='command', help='可用命令') # 拆分命令 split_parser = subparsers.add_parser('split', help='拆分CSV文件') split_parser.add_argument('input', help='输入文件路径') split_parser.add_argument('--output', default='output', help='输出文件前缀') split_parser.add_argument('--chunk', type=int, default=10000, help='每个分块的行数') # 合并命令 merge_parser = subparsers.add_parser('merge', help='合并CSV文件') merge_parser.add_argument('--input', nargs='+', required=True, help='输入文件列表') merge_parser.add_argument('--output', required=True, help='输出文件路径') args = parser.parse_args() if args.command == 'split': file_count = split_csv(args.input, args.output, args.chunk) print(f"成功拆分文件为 {file_count} 个部分") elif args.command == 'merge': merge_csv(args.input, args.output) print(f"成功合并 {len(args.input)} 个文件到 {args.output}") 怎么将这个代码打包成一个工具
最新发布
07-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值