我想根据网址将html保存到文件中。
获取url的唯一名称我正在使用uuid。
>>> url = "https://www.google.co.in/?gfe_rd=cr&ei=-koUWPf4HqzT8ge2g6HoBg&gws_rd=ssl"
>>> uuidstring = str(uuid.uuid5(uuid.NAMESPACE_DNS, url))
但我想进一步缩短名称。有没有办法将字符串缩短为唯一的小字符串。
我试过base64,但我想不出来。
>>> uuid.UUID(uuidstring).bytes.encode('base64').rstrip('=\n').replace('/', '_')
>>> AttributeError: 'bytes' object has no attribute 'encode'
关联问题:Convert UUID 32-character hex string into a "YouTube-style" short id and back
答案 0 :(得分:4)
像这样使用base64
模块,它可以处理二进制数据,然后执行解码为ascii
(因为base64是ascii就可以了。)
import uuid,base64
url = "https://www.google.co.in/?gfe_rd=cr&ei=-koUWPf4HqzT8ge2g6HoBg&gws_rd=ssl"
uuidstring = str(uuid.uuid5(uuid.NAMESPACE_DNS, url))
z=base64.encodebytes(uuid.UUID(uuidstring).bytes).decode("ascii").rstrip('=\n').replace('/', '_')
print(z)
结果:
pvEA9qOdX8COYyJf8zgzRA