모든 ASCII 문자 목록을 포함하는 Python 라이브러리가 있습니까?


98

아래와 같은 것 :

import ascii

print ascii.charlist()

[A, B, C, D ...]와 같은 결과를 반환합니다.

답변:


163

string상수는 당신이 원하는 것을 할 수있다. ( 문서 )

>>> 문자열 가져 오기
>>> string.ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

인쇄 가능한 모든 문자를 원하는 경우 :

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

3
나는 그것이 약간 혼란 스럽다고 생각합니다. ASCII는-에서 a가 z아니라 0에서 127 코드, 즉 문자가 아닙니다.
— Andrey

4
string.ascii_letters전체 shebang입니다!
— jathanism

1
@jathanism-아니면 string.letters... string.printable@ Andrey가 언급 한 것에 더 가깝지만 동일하지는 않습니다.
— Joe Kington

OP에 실제로 모든 단일 문자가 필요한지 여부에 달려 있다고 생각합니다. string.printable인쇄 가능한 모든 문자를 제공합니다.
— Acorn

질문의 제목은 명확하지만 (전체 ASCII 집합을 참조 함) 예를 들어 OP가 실제로 문자를 원하는 것처럼 보입니다.
— Andrey

32

여기있어:

[chr(i) for i in xrange(127)]

String모듈이 더 이상 사용되지 않는다는 점을 감안할 때 이것이 가장 좋은 답변입니다
— Devon M

1
@ChuckFulminata, string모듈은 더 이상 사용되지 않습니다. 예를 들어 이것을 참조하십시오 .
— dkasak

@dkasak 쿨 감사합니다. 잊었습니다. string모듈은 부분적으로 만 사용되지 않습니다
— Devon M

1
Python 3에서는을 호출해야합니다 . 제거되고 이름이 변경 range(127)되었기 때문 입니다. 또한 Python 2에서 유니 코드 문자를 얻으려면 Python 3에서 간단히 호출해야합니다.rangexrangeunichr(i)chr(i)
— Benj

1
0-127의 범위 (128) 여야하지 않습니까?
— Anadactothe

14

ASCII는 바이트 값 범위가 0에서 127까지 인 128자를 정의합니다. 따라서 모든 ASCII 문자의 문자열을 얻으려면 다음을 수행하면됩니다.

''.join([chr(i) for i in range(128)])

그중 일부만 인쇄 가능하지만 인쇄 가능한 ASCII 문자는 다음을 통해 Python에서 액세스 할 수 있습니다.

import string
string.printable

4

ASCII 인쇄 가능한 문자는 매우 작은 목록 (값이 32에서 127 사이 인 바이트)이므로 필요할 때 쉽게 생성 할 수 있습니다.

>>> for c in (chr(i) for i in range(32,127)):
...     print c
... 

!
"
#
$
%
... # a few lines removed :)
y
z
{
|
}
~

3
for i in range(0,128):
    print chr(i)

이 시도!


ASCII는 range(0, 128).
— dan04 2011

@ dan04 @lucemia ASCII 0에서 127 , 확장 코드는 최대 255
— Andrey

3
@Andrey : ASCII는 0에서 127까지이므로 Python에서는 range (0, 128)입니다. (다른 여러 답변의 일반적인 오류 ...)
— jtniehof

1

모듈없이이 작업을 수행 할 수 있습니다.

    characters = list(map(chr, range(97,123)))

입력 characters하면 인쇄 ["a","b","c", ... ,"x","y","z"]됩니다. 대문자 사용 :

    characters=list(map(chr,range(65,91)))

유니 코드를 사용하기 때문에 모든 범위 (범위 단계 사용 포함)를 사용할 수 있습니다. 따라서 range()목록에 더 많은 문자를 추가 하려면 을 늘리십시오 .
map()의 chr()모든 반복을 호출 합니다 range().


-7

아니요, 없습니다.하지만 쉽게 만들 수 있습니다.

    #Your ascii.py program:
    def charlist(begin, end):
        charlist = []
        for i in range(begin, end):
            charlist.append(chr(i))
        return ''.join(charlist)

    #Python shell:
    #import ascii
    #print(ascii.charlist(50, 100))
    #Comes out as:

    #23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc

11
수락 된 답변 에서을 명확하게 언급 한 지 3 년 후 string.printable"아니요, 없습니다"라고 주장하십니까?
— Tobias Kienzler
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.