[python] Python의 임의 문자열

파이썬에서 임의의 문자열을 어떻게 생성합니까?

나는 그것이 내가 만든 것입니다.

def random_id(length):
    number = '0123456789'
    alpha = 'abcdefghijklmnopqrstuvwxyz'
    id = ''
    for i in range(0,length,2):
        id += random.choice(number)
        id += random.choice(alpha)
    return id



답변

예를 들어 소문자로 문자열 생성 :

import random, string

def randomword(length):
   letters = string.ascii_lowercase
   return ''.join(random.choice(letters) for i in range(length))

결과 :

>>> randomword(10)
'vxnxikmhdc'
>>> randomword(10)
'ytqhdohksy'


답변

이 질문은 상당히, 어, 임의적이므로 다음과 같이 도움이 될 수 있습니다.

>>> import uuid
>>> print uuid.uuid4()
58fe9784-f60a-42bc-aa94-eb8f1a7e5c17


답변

>>> import random
>>> import string
>>> s=string.lowercase+string.digits
>>> ''.join(random.sample(s,10))
'jw72qidagk


답변

원래 질문에 대한 답변 :

os.urandom(n)

인용 출처 : http://docs.python.org/2/library/os.html

암호화 사용에 적합한 n 개의 임의 바이트 문자열을 반환합니다.

이 함수는 OS 별 임의성 소스에서 임의의 바이트를 반환합니다. 반환 된 데이터는 암호화 애플리케이션에 대해 충분히 예측할 수 없지만 정확한 품질은 OS 구현에 따라 달라집니다. UNIX 계열 시스템에서는 / dev / urandom을 쿼리하고 Windows에서는 CryptGenRandom을 사용합니다. 임의성 소스를 찾지 못하면 NotImplementedError가 발생합니다.

플랫폼에서 제공하는 난수 생성기에 대한 사용하기 쉬운 인터페이스는 random.SystemRandom을 참조하십시오.


답변

다음과 같은 임의의 ASCII 문자를 만들 수 있습니다.

import random
print chr(random.randint(0,255))

그런 다음 다음과 같이 긴 문자열을 작성하십시오.

len = 50
print ''.join( [chr(random.randint(0,255)) for i in xrange(0,len)] )


답변

어떤 종류의 임의의 문자열이 필요한지에 대해 많이 말하지 않았습니다. 그러나 어쨌든 random모듈을 살펴 봐야 합니다.

매우 간단한 솔루션이 아래에 붙여 넣어집니다.

import random

def randstring(length=10):
    valid_letters='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    return ''.join((random.choice(valid_letters) for i in xrange(length)))

print randstring()
print randstring(20)


답변

때로는 반 발음 가능하고 반 기억 가능한 임의의 문자열을 원했습니다.

import random

def randomWord(length=5):
    consonants="bcdfghjklmnpqrstvwxyz"
    vowels="aeiou"

    return "".join(random.choice((consonants,vowels)[i%2]) for i in range(length))

그때,

>>> randomWord()
nibit
>>> randomWord()
piber
>>> randomWord(10)
rubirikiro

4 글자 단어를 피하려면 4로 설정하지 마십시오 length.