You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现用户输入转ASCII并在字符间插入NULL的问题求解

解决方案

核心实现逻辑

你需要的NULL字符对应的ASCII字节为b'\x00',处理时需先把输入字符串的每个字符单独转成单字节ASCII,再用b'\x00'拼接所有字节即可。

核心处理函数

def str_to_null_sep_ascii(input_str: str) -> bytes:
    # 校验是否为ASCII字符
    if not input_str.isascii():
        raise ValueError("输入包含非ASCII字符,无法完成转换")
    # 每个字符单独转ASCII字节
    char_byte_list = [c.encode('ascii') for c in input_str]
    # 用NULL字节拼接
    return b'\x00'.join(char_byte_list)

效果验证

输入"111"时调用函数,返回结果为b'1\x001\x001',转换为十进制字节序列为[49, 0, 49, 0, 49],完全匹配预期输出。

完整需求适配代码

适配双输入、二进制文件查找替换场景的完整代码如下:

def str_to_null_sep_ascii(input_str: str) -> bytes:
    if not input_str.isascii():
        raise ValueError("输入包含非ASCII字符,无法完成转换")
    char_byte_list = [c.encode('ascii') for c in input_str]
    return b'\x00'.join(char_byte_list)

# 获取用户输入
search_target = input("请输入要搜索的数字: ")
replace_value = input("请输入替换后的数字: ")

# 转换为要求的格式
search_bytes = str_to_null_sep_ascii(search_target)
replace_bytes = str_to_null_sep_ascii(replace_value)

# 二进制文件查找替换逻辑
with open("你的目标文件路径", "rb") as f:
    file_content = f.read()

new_content = file_content.replace(search_bytes, replace_bytes)

with open("你的目标文件路径", "wb") as f:
    f.write(new_content)

内容的提问来源于stack exchange,提问作者Jack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 15:36:04