栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python小工具之HexToText和TextToHex

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python小工具之HexToText和TextToHex

超级好用的HexToText和TextToHex !!!


目录
  • 前言
  • 一、HexToText源码
  • 二、TextToHex源码
  • 总结


前言 HexToText >> 十六进制转文本文件 & TextToHex >> 文本文件转十六进制 。

中文名:十六进制转文本文件&文本文件转十六进制
外文名:HexToText & TextToHex
支持:
类型:python字符转换
软件大小:7.5M
软件版本:1.0
软件下载&更新1:腾讯微云链接
软件下载&更新2:百度网盘链接_提取码6666

腾讯微云:https://share.weiyun.com/SaUIHxvy
百度网盘:提取码6666
https://pan.baidu.com/s/1hjuQLuSqWxAzYAQ1xlMO8Q


一、HexToText源码

代码如下:

# coding=utf-8
import datetime
import os
import sys

# --------- 全局变量或类  ---------start
class LogFile:
    InputfileName = "Input.txt"  #文件名
    OutputfileName = "Output.txt"  #文件名
    Inputfilesize = 0
    Inputfile=""
    Outputfile=""
# --------- 全局变量或类  ---------end

def get_datetime():
    time_now = datetime.datetime.now()
    time_now = "[" + str(time_now)[:-3] + "] " #转为字符串后切片
    #print(time_now)
    return time_now

# --------- 主函数入口  ---------
#PyCharm 主函数传入行参格式: Input.txt
#安装Pyinstaller,在cmd窗口,输入指令“pip install pyinstaller”进行网络安装。
#使用指令“pyinstaller -F xxx.py”生成exe文件。
if __name__=="__main__":
    #主函数参数处理
    mainParaCnt = 0
    for index in sys.argv:
        #print(index)
        mainParaCnt+=1

    #print(mainParaCnt)
    if mainParaCnt==2: #批处理bat或控制台python 文件名.py 传入正确参数处理
        #E:pythonHexToTextdistInput.txt 拖到exe的结果

        LogFile.InputfileName = sys.argv[1]
        InputfileName = os.path.split(LogFile.InputfileName)[1]
        InputfileNameSuffix = os.path.splitext(LogFile.InputfileName)[1]
        #print(InputfileName)
        #print(InputfileNameSuffix)

        LogFile.InputfileName = InputfileName
        LogFile.OutputfileName = LogFile.InputfileName + "_HexToText_Output" + InputfileNameSuffix

    else:
        pass # 默认参数0或错误参数处理

    #print(LogFile.InputfileName)
    #print(LogFile.OutputfileName)

    #os.system("pause")

    print("nHexToText十六进制转文本文件_使用说明:(推荐使用直接使用步骤4)n")
    print("1.运行HexToText.exe自动生成Input.txt或手动建立可忽略此操作")
    print("2.在Input.txt输入需要转换的字符eg. 'CE D2 B0 AE C2 DE 31 32 33 ' 或 'CED2B0AEC2DE313233' ")
    print("3.运行HexToText.exe会自动输出Output.txt,转换内容:我爱罗123")
    print("4.或直接把需转换的输入文件拖动到HexToText.exe中,会自动输出'输入文件名_HexToText_Output_输入文件名后缀'n")

    # file处理
    # r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
    # w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    try:
        LogFile.Inputfile = open(LogFile.InputfileName, "r", encoding='UTF-8')
        #print(LogFile.Inputfile)
    except Exception as e:
        #print("---异常---:", e)
        LogFile.Inputfile = open(LogFile.InputfileName, "w", encoding='UTF-8')
        sys.exit(1)

    StrStart = get_datetime() + "---*---Start---*---n"
    #print(StrStart,end="")
    print(StrStart)

    LogFile.Inputfilesize = os.path.getsize(LogFile.InputfileName)
    #print("Inputfilesize:", LogFile.Inputfilesize)
    InputfileText = LogFile.Inputfile.read(LogFile.Inputfilesize)
    #print(InputfileText)

    #w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    #LogFile.Outputfile = open(LogFile.OutputfileName, "w", encoding='UTF-8')
    LogFile.Outputfile = open(LogFile.OutputfileName, "wb")
    OutputfileText = bytes.fromhex(InputfileText)
    #print(OutputfileText)
    LogFile.Outputfile.write(OutputfileText)

    StrEnd = get_datetime() + "---*----End----*---n"
    print(StrEnd)

二、TextToHex源码

代码如下:

# coding=utf-8
import datetime
import os
import sys
import re

# --------- 全局变量或类  ---------start
class LogFile:
    InputfileName = "Input.txt"  #文件名
    OutputfileName = "Output.txt"  #文件名
    Inputfilesize = 0
    Inputfile=""
    Outputfile=""
# --------- 全局变量或类  ---------end

def get_datetime():
    time_now = datetime.datetime.now()
    time_now = "[" + str(time_now)[:-3] + "] " #转为字符串后切片
    #print(time_now)
    return time_now

# --------- 主函数入口  ---------
#PyCharm 主函数传入行参格式: Input.txt
#安装Pyinstaller,在cmd窗口,输入指令“pip install pyinstaller”进行网络安装。
#使用指令“pyinstaller -F xxx.py”生成exe文件。
if __name__=="__main__":
    #主函数参数处理
    mainParaCnt = 0
    for index in sys.argv:
        #print(index)
        mainParaCnt+=1

    #print(mainParaCnt)
    if mainParaCnt==2: #批处理bat或控制台python 文件名.py 传入正确参数处理
        #E:pythonHexToTextdistInput.txt 拖到exe的结果

        LogFile.InputfileName = sys.argv[1]
        InputfileName = os.path.split(LogFile.InputfileName)[1]
        InputfileNameSuffix = os.path.splitext(LogFile.InputfileName)[1]
        #print(InputfileName)
        #print(InputfileNameSuffix)

        LogFile.InputfileName = InputfileName
        LogFile.OutputfileName = LogFile.InputfileName + "_TextToHex_Output" + InputfileNameSuffix

    else:
        pass # 默认参数0或错误参数处理

    #print(LogFile.InputfileName)
    #print(LogFile.OutputfileName)

    #os.system("pause")

    print("nTextToHex文本文件转十六进制_使用说明:(推荐使用直接使用步骤4)n")
    print("1.运行TextToHex.exe自动生成Input.txt或手动建立可忽略此操作")
    print("2.在Input.txt输入需要转换的字符eg. 我爱罗123")
    print("3.运行TextToHex.exe会自动输出Output.txt,转换内容:'CE D2 B0 AE C2 DE 31 32 33'")
    print("4.或直接把需转换的输入文件拖动到TextToHex.exe中,会自动输出'输入文件名_TextToHex_Output_输入文件名后缀'n")

    # file处理
    # r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
    # w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    try:
        LogFile.Inputfile = open(LogFile.InputfileName, "r", encoding='UTF-8')
        #print(LogFile.Inputfile)
    except Exception as e:
        #print("---异常---:", e)
        LogFile.Inputfile = open(LogFile.InputfileName, "w", encoding='UTF-8')
        sys.exit(1)

    StrStart = get_datetime() + "---*---Start---*---n"
    #print(StrStart,end="")
    print(StrStart)

    LogFile.Inputfilesize = os.path.getsize(LogFile.InputfileName)
    #print("Inputfilesize:", LogFile.Inputfilesize)
    InputfileText = LogFile.Inputfile.read(LogFile.Inputfilesize)
    #print(InputfileText)

    #w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    #LogFile.Outputfile = open(LogFile.OutputfileName, "w", encoding='UTF-8')
    LogFile.Outputfile = open(LogFile.OutputfileName, "wb")

    #OutputfileText = bytes.fromhex(InputfileText)
    #print(OutputfileText)
    #LogFile.Outputfile.write(OutputfileText)

    # str->bytes bytes.hex()-> str eg. 我爱罗123-> ced2b0aec2de313233
    OutputfileText = bytes(InputfileText,encoding='gb2312').hex()
    OutputfileText = OutputfileText.upper() #大写
    OutputfileText = re.sub(r"(?<=w)(?=(?:ww)+$)", " ", OutputfileText) #将字符串每两个以空格分开

    # str->bytes
    bOutputfileText = OutputfileText.encode(encoding='UTF-8')

    LogFile.Outputfile.write(bOutputfileText)

    StrEnd = get_datetime() + "---*----End----*---n"
    print(StrEnd)


总结

提示:欢迎下载使用。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/655489.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号