是否有python标准库中所有ASCII字符的列表?

时间:2013-07-29 04:15:34

标签: python

是否有字段或函数会返回python标准库中的所有ASCII字符?

4 个答案:

答案 0 :(得分:26)

你可以制作一个。

ASCII = ''.join(chr(x) for x in range(128))

如果您需要检查会员资格,还有其他方法可以做到:

if c in ASCII:
    # c is an ASCII character

if c <= '\x7f':
    # c is an ASCII character

如果要检查整个字符串是否为ASCII:

def is_ascii(s):
    """Returns True if a string is ASCII, False otherwise."""
    try:
        s.encode('ASCII')
        return True
    except UnicodeEncodeError:
        return False

答案 1 :(得分:10)

您可以使用string模块:

import string
print string.printable

给出:

'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'

答案 2 :(得分:2)

您可以使用Python标准库模块curses.ascii。一些包含的功能包括:

curses.ascii.isascii() # Checks for a character value in the 7-bit ASCII set.
curses.ascii.iscntrl() # Checks for an ASCII control character (in the range 0x00 to 0x1f).
curses.ascii.isalpha() # Check for an ASCII alphabetic character.

来自文档:

  

curses.ascii模块提供ASCII字符和函数的名称常量,以测试各种ASCII字符类的成员资格。

请注意,curses模块可能在Windows系统上不可用:

  

curses模块提供了curses库的接口,这是便携式高级终端处理的事实标准。

     

虽然curses在Unix环境中使用最为广泛,但版本可用于DOS,OS / 2以及其他可能的系统。此扩展模块旨在匹配ncurses的API,这是一个托管在Linux上的开源curses库和Unix的BSD变体。

答案 3 :(得分:0)

我不知道任何包含这种属性的python模块。然而,最简单和最简单的方法可能只是自己创建

standard_ascii = [chr(i) for i in xrange(128)]

extended_ascii = [chr(i) for i in xrange(256)]

用于扩展的ascii字符列表。

请注意

import string
string.printable

不包括所有127个标准ascii字符,您可以通过

查看
len(string.printable)
> 100

如果您希望将它们作为字符串而不是列表,只需添加"".join(),如下所示:

extended_ascii = "".join([chr(i) for i in xrange(256)])