在Python 3中将映射函数的输出转换为字符串

丹尼斯·L。

我正在尝试更新一个生成字符串的脚本,以便它可以在Python 3上运行。这是麻烦的代码段:

from itertools import islice, repeat
from os import urandom
import string

string_len = 16
chars = string.ascii_letters + string.digits + string.punctuation   

char_gen = (c for c in map(urandom, repeat(1)) if c in chars)
pswd_text = ''.join(islice(char_gen, None, string_len))

但不幸的是,我收到一个TypeError:

% python3 ./string_generator.py 
Traceback (most recent call last):
  File "./string_generator.py", line 12, in <module>
    pswd_text = ''.join(islice(char_gen, None, pswd_len))
  File "./string_generator.py", line 10, in <genexpr>
    c for c in map(urandom, repeat(1)) if c in chars
TypeError: 'in <string>' requires string as left operand, not bytes

我很确定这是导致TypeError的map函数的迭代,但是我还无法弄清楚如何将其转换为字符串或其他任何解决方案。非常感谢您的帮助或想法。

西蒙·克劳

问题在于混合bytesstr价值观。确保所有内容都以字节为单位使其可以工作,因为urandom返回字节。

# Encode the concatenated strings into a byte string
chars = (string.ascii_letters + string.digits + string.punctuation).encode()

char_gen = (c for c in map(urandom, repeat(1)) if c in chars)

# Use an empty byte string to join the generated bytes 
pswd_text = b''.join(islice(char_gen, None, string_len))

您随时可以调用pswd_text.decode()以获取unicode字符串(str)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将SQL输出转换为Python中的字符串

来自分类Dev

ValueError:无法在python 3中将字符串转换为float:''

来自分类Dev

在python 3中将字符串转换为数字列表

来自分类Dev

如何在python 3中将字节转换为字符串?

来自分类Dev

如何在python 2.7中将字符串转换为字节字符串

来自分类Dev

如何在Python中将字符串转换为函数?

来自分类Dev

在python中将字符串转换为函数名称

来自分类Dev

如何在Python中将字符串转换为函数?

来自分类Dev

有没有什么简单的方法可以将 python 中的 type() 函数的输出转换为字符串?

来自分类Dev

如何在Python3中将数字字符串转换为int列表

来自分类Dev

在python 3中将转义的utf-8字符串转换为utf

来自分类Dev

如何在Python 3中将二进制字符串转换为类似字节的对象?

来自分类Dev

在python 3中将字符串转换为有效的wordpress url以供请求库使用

来自分类Dev

如何在python3中将浮点数和字符串转换为整数值

来自分类Dev

在python中将%%中的字符串转换为小写

来自分类Dev

如何在Python 2中将字符串转换为字节

来自分类Dev

在python2.7中将原始字符串转换为JSON对象

来自分类Dev

在Python 2中将file:// URI转换为打开参数字符串

来自分类Dev

如何在python 2.7中将unicode字符串转换为字符串文字?

来自分类Dev

如何在python 2.7中将unicode字符串转换为字符串文字?

来自分类Dev

python将字符串转换为逻辑门函数

来自分类Dev

在 Python 中,如何将类/函数的调用转换为字符串?

来自分类Dev

Python 3-将字符串转换为数字

来自分类Dev

python3:将字符串转换为类型

来自分类Dev

Python3-将字符串转换为字典

来自分类Dev

将Unicode转换为Python 2中的字符串

来自分类Dev

将字符串转换为python中的词典列表

来自分类Dev

将集合转换为python中的字符串

来自分类Dev

将Unicode转换为Python 2中的字符串

Related 相关文章

  1. 1

    将SQL输出转换为Python中的字符串

  2. 2

    ValueError:无法在python 3中将字符串转换为float:''

  3. 3

    在python 3中将字符串转换为数字列表

  4. 4

    如何在python 3中将字节转换为字符串?

  5. 5

    如何在python 2.7中将字符串转换为字节字符串

  6. 6

    如何在Python中将字符串转换为函数?

  7. 7

    在python中将字符串转换为函数名称

  8. 8

    如何在Python中将字符串转换为函数?

  9. 9

    有没有什么简单的方法可以将 python 中的 type() 函数的输出转换为字符串?

  10. 10

    如何在Python3中将数字字符串转换为int列表

  11. 11

    在python 3中将转义的utf-8字符串转换为utf

  12. 12

    如何在Python 3中将二进制字符串转换为类似字节的对象?

  13. 13

    在python 3中将字符串转换为有效的wordpress url以供请求库使用

  14. 14

    如何在python3中将浮点数和字符串转换为整数值

  15. 15

    在python中将%%中的字符串转换为小写

  16. 16

    如何在Python 2中将字符串转换为字节

  17. 17

    在python2.7中将原始字符串转换为JSON对象

  18. 18

    在Python 2中将file:// URI转换为打开参数字符串

  19. 19

    如何在python 2.7中将unicode字符串转换为字符串文字?

  20. 20

    如何在python 2.7中将unicode字符串转换为字符串文字?

  21. 21

    python将字符串转换为逻辑门函数

  22. 22

    在 Python 中,如何将类/函数的调用转换为字符串?

  23. 23

    Python 3-将字符串转换为数字

  24. 24

    python3:将字符串转换为类型

  25. 25

    Python3-将字符串转换为字典

  26. 26

    将Unicode转换为Python 2中的字符串

  27. 27

    将字符串转换为python中的词典列表

  28. 28

    将集合转换为python中的字符串

  29. 29

    将Unicode转换为Python 2中的字符串

热门标签

归档