파이썬에서 임의의 문자열을 어떻게 생성합니까?
나는 그것이 내가 만든 것입니다.
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
.
짐