txt大文件拆分(批量版)

之前的python程序只能拆分单个文件,这里重新加了个文件夹拆分的功能(打包好的exe文件在文章末尾)
使用步骤:运行代码–>把文件放到input文件夹里–>命令行界面回车–>output文件夹输出文件


outputPath = "./output" #文件夹目录
def split(inputPath, file):
    # 读取源文件,文件名最好加上绝对路径
    with open(inputPath+"/"+file, 'r') as f:
        # 把数据写入列表
        wordlist = f.readlines()
        # 算出总行数
        length = len(wordlist)
    # 设置每个拆分文件的行数
    unit = 1048576
    # 计算新文件的个数,如果总行数整除新文件行数,就取这个商的值,如果不整除,取商加1的值
    file_amount = length // unit + 1 if length % unit > 0 else length // unit
    # 分离文件名和后缀
    (name, suffix) = os.path.splitext(file)
    # 遍历所有新文件
    for num in range(file_amount):
        # 计算新文件中第一行在源文件中对应的行号
        start = num * unit
        # 计算新文件中最后一行在源文件中对应的行号
        end = length if length < (num + 1) * unit else (num + 1) * unit
        # 写入新文件,文件名最好加上绝对路径
        with open(outputPath+"/"+name + str(num + 1) + '.txt', 'w+') as f:
            # 遍历新文件的所有行
            for i in range(start, end):
                # 把列表中的数据写入新文件
                f.write(wordlist[i])

import os
inputPath = "./input" #文件夹目录
def main():
    # 创建文件夹,用于存放待分割的大文件
    if not os.path.exists(inputPath):
        os.makedirs(inputPath)
        print("Folder created")
    else:
        print("Folder already exists")
        
    # 创建文件夹,用于存放分割后的小文件
    if not os.path.exists(outputPath):
        os.makedirs(outputPath)
        print("Folder created")
    else:
        print("Folder already exists")

    Enter = input("请将待分割文件放于input文件夹下,再切换命令行界面,回车")
    
    #遍历文件夹内所有文件
    files= os.listdir(inputPath) #得到文件夹下的所有文件名称
    for file in files: #遍历文件夹
        if not os.path.isdir(file): #判断是否是文件夹,不是文件夹才打开
            split(inputPath, file); #分割文件


if __name__ == '__main__':
    main()

注:可以使用python打包exe命令,得到exe程序文件(Pyinstaller -F split.py),exe文件下载地址(链接:https://pan.baidu.com/s/18nw2p87NLUSBuyBVZbmqKg 提取码:sf6v)

相关推荐

  1. txt文件批量

    2024-04-28 00:10:03       31 阅读
  2. 使用 python excel 文件

    2024-04-28 00:10:03       40 阅读
  3. Apache Spark 文件机制

    2024-04-28 00:10:03       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-28 00:10:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-28 00:10:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-28 00:10:03       87 阅读
  4. Python语言-面向对象

    2024-04-28 00:10:03       96 阅读

热门阅读

  1. C++11 设计模式5. 原型模式

    2024-04-28 00:10:03       27 阅读
  2. TCP协议是如何保证数据可靠传输的?

    2024-04-28 00:10:03       28 阅读
  3. 额外加餐-关于使用bitmap来解决缓存穿透的方案

    2024-04-28 00:10:03       81 阅读
  4. tvm的常见op

    2024-04-28 00:10:03       110 阅读
  5. Linux--线程

    2024-04-28 00:10:03       35 阅读
  6. 商用清洁机器人的工作原理介绍

    2024-04-28 00:10:03       34 阅读
  7. C语言:实现N的阶乘

    2024-04-28 00:10:03       32 阅读
  8. FPGA verilog 模板设计示例(持续更新)

    2024-04-28 00:10:03       26 阅读