使用方法
分割: python fs.py -n <分割后的文件个数> <要分割的文件>
合并: python fs.py -m <分割文件1> <分割文件2> ...
示例
PS C:\Users\Administrator\Desktop> python fs.py
使用方法:
分割: python fs.py -n <分割后的文件个数> <要分割的文件>
合并: python fs.py -m <分割文件1> <分割文件2> ...PS C:\Users\Administrator\Desktop> python fs.py -n 3 .\python-3.13.2-amd64.exe
文件分割完成,共生成 3 个分割文件。PS C:\Users\Administrator\Desktop> python fs.py -m python-3.13.2-amd64.exe.01 python-3.13.2-amd64.exe.02 python-3.13.2-amd64.exe.03
文件合并完成。
源代码
import os
import sysdef split_file(file_path, num_parts):try:file_size = os.path.getsize(file_path)chunk_size = file_size // num_partsremainder = file_size % num_partswith open(file_path, 'rb') as file:for i in range(num_parts):part_file_name = f"{file_path}.{str(i + 1).zfill(2)}"with open(part_file_name, 'wb') as part_file:if i < num_parts - 1:part_data = file.read(chunk_size)else:part_data = file.read(chunk_size + remainder)part_file.write(part_data)print(f"文件分割完成,共生成 {num_parts} 个分割文件。")except Exception as e:print(f"文件分割出错: {e}")def merge_files(part_files, output_file):try:with open(output_file, 'wb') as output:for part_file in sorted(part_files):if os.path.exists(part_file):with open(part_file, 'rb') as part:output.write(part.read())# 删除分割文件os.remove(part_file)print("文件合并完成。")except Exception as e:print(f"文件合并出错: {e}")if __name__ == "__main__":if len(sys.argv) < 3:print("使用方法:")print("分割: python fs.py -n <分割后的文件个数> <要分割的文件>")print("合并: python fs.py -m <分割文件1> <分割文件2> ...")sys.exit(1)if sys.argv[1] == '-n':if len(sys.argv) != 4:print("分割命令参数错误,正确格式: python fs.py -n <分割后的文件个数> <要分割的文件>")sys.exit(1)try:num_parts = int(sys.argv[2])file_to_split = sys.argv[3]split_file(file_to_split, num_parts)except ValueError:print("分割后的文件个数必须是整数。")elif sys.argv[1] == '-m':part_files = sys.argv[2:]if not part_files:print("合并命令缺少分割文件参数。")sys.exit(1)output_file = '.'.join(part_files[0].split('.')[:-1])merge_files(part_files, output_file)else:print("未知参数,请使用 -n 进行分割,-m 进行合并。")