Python输入16进制保存到文件

(题目有点勉强,不过问题真的很难描述,希望Google/Baidu到这里的童鞋不要失望) 前几天给zwwooooo写一个小工具,其中遇到一个输入的问题。具体描述就是:“输入4个16进制的数字,如’00a0’,输入之后必须能够把这个输入给保存到文件中存为2进制格式,必须是原始的16进制,而不是字符串类型。如’\x00\xa0’”。(其实这是用在处理文本上的) 不知道各位大大有没有明白我的意思,我花了很长时间没有一个好的解决方案。 第一种方案,先用int()转换,然后转换hex(),直接失败,hex()转换后格式为’0x00a0’,是字符串格式,根本不是我需要的内容。 我苦思冥想三天,终于找到一个最傻,也最好用的方法,用list进行匹配。 下面是生成匹配list的脚本:

lst = '{'
for i in range(int('0x00', 16), int('0xff', 16) + 1):
    hv = hex(i).replace('0x', '')
    if len(hv) == 1:
        hv = '0' + hv
    lst += '\'' + hv + '\': \'\\x' + hv + '\', '
lst += '}'
print lst

下面是生成的list:

{'00': '\x00', '01': '\x01', '02': '\x02', '03': '\x03', '04': '\x04', '05': '\x05', '06': '\x06', '07': '\x07', '08': '\x08', '09': '\x09', '0a': '\x0a', '0b': '\x0b', '0c': '\x0c', '0d': '\x0d', '0e': '\x0e', '0f': '\x0f', '10': '\x10', '11': '\x11', '12': '\x12', '13': '\x13', '14': '\x14', '15': '\x15', '16': '\x16', '17': '\x17', '18': '\x18', '19': '\x19', '1a': '\x1a', '1b': '\x1b', '1c': '\x1c', '1d': '\x1d', '1e': '\x1e', '1f': '\x1f', '20': '\x20', '21': '\x21', '22': '\x22', '23': '\x23', '24': '\x24', '25': '\x25', '26': '\x26', '27': '\x27', '28': '\x28', '29': '\x29', '2a': '\x2a', '2b': '\x2b', '2c': '\x2c', '2d': '\x2d', '2e': '\x2e', '2f': '\x2f', '30': '\x30', '31': '\x31', '32': '\x32', '33': '\x33', '34': '\x34', '35': '\x35', '36': '\x36', '37': '\x37', '38': '\x38', '39': '\x39', '3a': '\x3a', '3b': '\x3b', '3c': '\x3c', '3d': '\x3d', '3e': '\x3e', '3f': '\x3f', '40': '\x40', '41': '\x41', '42': '\x42', '43': '\x43', '44': '\x44', '45': '\x45', '46': '\x46', '47': '\x47', '48': '\x48', '49': '\x49', '4a': '\x4a', '4b': '\x4b', '4c': '\x4c', '4d': '\x4d', '4e': '\x4e', '4f': '\x4f', '50': '\x50', '51': '\x51', '52': '\x52', '53': '\x53', '54': '\x54', '55': '\x55', '56': '\x56', '57': '\x57', '58': '\x58', '59': '\x59', '5a': '\x5a', '5b': '\x5b', '5c': '\x5c', '5d': '\x5d', '5e': '\x5e', '5f': '\x5f', '60': '\x60', '61': '\x61', '62': '\x62', '63': '\x63', '64': '\x64', '65': '\x65', '66': '\x66', '67': '\x67', '68': '\x68', '69': '\x69', '6a': '\x6a', '6b': '\x6b', '6c': '\x6c', '6d': '\x6d', '6e': '\x6e', '6f': '\x6f', '70': '\x70', '71': '\x71', '72': '\x72', '73': '\x73', '74': '\x74', '75': '\x75', '76': '\x76', '77': '\x77', '78': '\x78', '79': '\x79', '7a': '\x7a', '7b': '\x7b', '7c': '\x7c', '7d': '\x7d', '7e': '\x7e', '7f': '\x7f', '80': '\x80', '81': '\x81', '82': '\x82', '83': '\x83', '84': '\x84', '85': '\x85', '86': '\x86', '87': '\x87', '88': '\x88', '89': '\x89', '8a': '\x8a', '8b': '\x8b', '8c': '\x8c', '8d': '\x8d', '8e': '\x8e', '8f': '\x8f', '90': '\x90', '91': '\x91', '92': '\x92', '93': '\x93', '94': '\x94', '95': '\x95', '96': '\x96', '97': '\x97', '98': '\x98', '99': '\x99', '9a': '\x9a', '9b': '\x9b', '9c': '\x9c', '9d': '\x9d', '9e': '\x9e', '9f': '\x9f', 'a0': '\xa0', 'a1': '\xa1', 'a2': '\xa2', 'a3': '\xa3', 'a4': '\xa4', 'a5': '\xa5', 'a6': '\xa6', 'a7': '\xa7', 'a8': '\xa8', 'a9': '\xa9', 'aa': '\xaa', 'ab': '\xab', 'ac': '\xac', 'ad': '\xad', 'ae': '\xae', 'af': '\xaf', 'b0': '\xb0', 'b1': '\xb1', 'b2': '\xb2', 'b3': '\xb3', 'b4': '\xb4', 'b5': '\xb5', 'b6': '\xb6', 'b7': '\xb7', 'b8': '\xb8', 'b9': '\xb9', 'ba': '\xba', 'bb': '\xbb', 'bc': '\xbc', 'bd': '\xbd', 'be': '\xbe', 'bf': '\xbf', 'c0': '\xc0', 'c1': '\xc1', 'c2': '\xc2', 'c3': '\xc3', 'c4': '\xc4', 'c5': '\xc5', 'c6': '\xc6', 'c7': '\xc7', 'c8': '\xc8', 'c9': '\xc9', 'ca': '\xca', 'cb': '\xcb', 'cc': '\xcc', 'cd': '\xcd', 'ce': '\xce', 'cf': '\xcf', 'd0': '\xd0', 'd1': '\xd1', 'd2': '\xd2', 'd3': '\xd3', 'd4': '\xd4', 'd5': '\xd5', 'd6': '\xd6', 'd7': '\xd7', 'd8': '\xd8', 'd9': '\xd9', 'da': '\xda', 'db': '\xdb', 'dc': '\xdc', 'dd': '\xdd', 'de': '\xde', 'df': '\xdf', 'e0': '\xe0', 'e1': '\xe1', 'e2': '\xe2', 'e3': '\xe3', 'e4': '\xe4', 'e5': '\xe5', 'e6': '\xe6', 'e7': '\xe7', 'e8': '\xe8', 'e9': '\xe9', 'ea': '\xea', 'eb': '\xeb', 'ec': '\xec', 'ed': '\xed', 'ee': '\xee', 'ef': '\xef', 'f0': '\xf0', 'f1': '\xf1', 'f2': '\xf2', 'f3': '\xf3', 'f4': '\xf4', 'f5': '\xf5', 'f6': '\xf6', 'f7': '\xf7', 'f8': '\xf8', 'f9': '\xf9', 'fa': '\xfa', 'fb': '\xfb', 'fc': '\xfc', 'fd': '\xfd', 'fe': '\xfe', 'ff': '\xff', }

其实看这个list,可以发现,其实是对字符串进行替换,使其对应到各自的原始16进制表示方式。 我刚学Python不足一个月,这只是我曲线救国的方法,求教更好的方法。

版权所有 © 2010 转载本站文章请注明: 转载自Log4D
原文链接: http://dddspace.com/2009/10/python-enter-the-16-hex-save-to-file.html
您可以随意地转载本站的文章,但是必须在醒目位置注明来源及本站链接,不可以将本站文章商业化使用,或者修改、转换或者以本作品为基础进行创作。
3a1ff193cee606bd1e2ea554a16353ee

分享家:Addthis中国
你也许会喜欢下面的文章

2 条留言

  1. 被发表在 2009年10月8日 at 22:16 | 固定链接

    哈,我就不行了,麻烦你了

    [回复]

  2. 被发表在 2009年10月9日 at 11:17 | 固定链接

    @zwwooooo
    呵呵,没事,我是初学者,边学边用

    [回复]

留下一条评论

你的邮箱不会被公开 . *标注为必填

*
*