TXT批量文本分割器Python



代码功能:
1、自动识别当前文件夹下的TXT文件并且分割拆分成100M一个文件(需要分割其他大小和格式 稍微修改下代码即可)
2、不会出现分割后乱码或其他编码问题
3、可单独处理一个大文件也可以批量处理多个大文件
4、文件很小,好操作好保存

import os
 
 
def split_file(file_path, max_size):
    # 获取文件名和扩展名
    file_dir, file_name = os.path.split(file_path)
    file_base_name, file_ext = os.path.splitext(file_name)
 
    # 打开源文件
    with open(file_path, 'rb') as source_file:
        # 读取源文件内容
        content = source_file.read()
 
        # 计算文件大小
        file_size = len(content)
 
        # 计算拆分文件的数量
        split_count = file_size // max_size + 1
 
        # 拆分文件
        for i in range(split_count):
            # 构造拆分后的文件名
            split_file_name = f"{file_base_name}_{i}{file_ext}"
            split_file_path = os.path.join(file_dir, split_file_name)
 
            # 计算当前拆分文件的起始位置和结束位置
            start = i * max_size
            end = (i + 1) * max_size if i < split_count - 1 else file_size
 
            # 写入拆分文件
            with open(split_file_path, 'wb') as split_file:
                split_file.write(content[start:end])
 
            print(f"拆分文件 {split_file_name} 创建成功")
 
 
# 获取当前文件夹中的文本文件
file_list = [f for f in os.listdir('.') if os.path.isfile(f) and f.endswith('.txt')]
 
# 拆分每个文本文件
for file_path in file_list:
    split_file(file_path, 100 * 1024 * 1024)  # 拆分为每个文件大小不超过100MB

动态分析技术中最重要的工具是调试器,分为用户模式和内核模式两种类型。
用户模式调试器: 用来调试用户模式应用程序的调试器,工作在Ring3级,例如OllyDbg、x64dbg。也存在有VisualC++等编译器自带的调试器。
内核模式调试器: 能调试操作系统内核的调试器,例如WinDbg。

OllyDbg
简称OD,用户级调试器。OD是一款十分强大的32位调试器,虽然作者早已停止更新,但作为学习工具还是可以的。实践中建议使用x64dbg的32位版本。

64位平台可以使用x64dbg、IDA Pro等

操作窗口


配置
ollydbg.ini: OD中Options菜单里的所有设置,保存在ollydbg.ini中
UDD文件: OD的工程文件,用于保存当前调试的一些状态,例如断点、注释等,以便下次调试时继续使用。
插件: OD支持插件,并提供了相关api。这使得其扩展性非常好。

调试设置
单击“Options” —“Debugsingoplions” 选项,打开调试设置选项对话框,一般保持默认即可。其中,“Exceptions” (异常)选项用于设置让OllyDbg 忽路或不忽略某些异常,建议全部选择。 有关异常的知识将在第8 章讲解。

加载符号文件
点击“Debug”- "Seleet importlibraries” 选项,打开导入库窗口进行加载。符号文件可以在调试过程中,让函数以函数名字表示。比如存在一个函数叫“abc”,但是在调试器中很可能是一串数字”004012f7“,而符号文件就能让它显示为”abc“。

基本操作
常见快捷键:

断点
常用断点有:INT3断点、硬件断点、消息断点。

INT3断点
当你使用bp命令或者按下F2时,所设的断点为INT3断点。原理是把下断点的地方的指令换成CC指令来引发异常,调试器捕获异常后中断,并把原指令还原。例如:

 复制代码 隐藏代码
004011F3 68 D0404000
||||||||||||
004011F3 CC D0404000
优点: 可以设置无数个INT3断点,只要电脑受得住。
缺点: 由于修改了程序,所以易被检测

硬件断点
设断方法是在指定的代码行单击右键,执行快捷菜单中的“Breakpoint” 一 "Hardware,on execution”(“断点〞一,“硬件执行”)命令(也可以在命令行中设置“HE地址”)
最多可以设置四个硬件断点。

其中DR0、DR1、DR2、DR3可以设定地址,用来断下,DR7用来控制状态。
原理: 设置好断点后,运行到改地址时,CPU会向调试器发送异常,调试器捕获后中断。
优点: 执行速度快,不易被检测
缺点: 只能设置四个

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七七八八九九

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值