2010-03-31 7 views
0

나는 아래의 코드를 사용하여 임의의 ID를 만드는 오전에 임의의 문자열 :하이픈 정확한 형식

from random import * 
import string 

# The characters to make up the random password 
chars = string.ascii_letters + string.digits 

def random_password(): 

    return "".join(choice(chars) for x in range(32)) 

이 뜻을 출력 뭔가 같은 :

60ff612332b741508bc4432e34ec1d3e 

을 나는 될 수있는 형식을 싶습니다 이 형식은 :

60ff6123-32b7-4150-8bc4-432e34ec1d3e 

나는 .split() 방법을 찾고 있었어요하지만 임의의로이 작업을 수행하는 방법을 볼 수 없습니다 이드는 또한 하이픈이이 자리에 있어야만 일정한 자리수만큼 그들을 나눌 수 있습니다. 나는 팔 수 이러한 임의의 id를 분할하는 방법은 다음 거기입니다 부탁 해요 4 등

감사

+0

+1 모든 문자열 조작에 대한 것이지만, uuid 모듈 잘라내 기는 많은 코드입니다. 감사합니다 – chrissygormley

답변

4

uuid 모듈을 사용하여 UUID를 생성 할 수 있습니다.

+1

+1,하지만 OP에 대한 메모. > 02 – ghostdog74

+0

에서만 사용할 수 있습니다. 이전 버전에서는 별도로 사용할 수 있습니다. http://zesty.ca/python/uuid.html –

3

무엇 별도로 모든 부분을 생성하는 문제? 좋아요 :

def random_password(): 
    return "-".join(["".join(choice(chars) for x in range(n)) 
        for n in (8, 4, 4, 4, 8)]) 
2

간단한 연결 방법은 어떻습니까?

>>> s="60ff612332b741508bc4432e34ec1d3e" 
>>> s[:8]+"-"+s[8:12]+"-"+s[12:16]+"-"+s[16:20]+"-"+s[20:] 
'60ff6123-32b7-4150-8bc4-432e34ec1d3e' 
1
pos = set([8, 12, 16]) 
print "".join(map(lambda x: (x[1], "%s-" % x[1])[x[0] in pos], list(enumerate(random_password())))) 
관련 문제