Alphin Philip
Alphin Philip

Reputation: 1399

How do I convert a Python UUID into a string?

I need to be able to assign a UUID to a user and document this in a .txt file. This is all I have:

import uuid

a = input("What's your name?")
print(uuid.uuid1())
f.open(#file.txt)

I tried:

f.write(uuid.uuid1())

but nothing comes up, may be a logical error but I don't know.

Upvotes: 138

Views: 243697

Answers (6)

Yaakov Bressler
Yaakov Bressler

Reputation: 12018

f-string works as well:

import uuid

str_id = f'{uuid.uuid4()}'

Upvotes: 4

andyw
andyw

Reputation: 3763

You can also do this. Removes the dashes as a bonus. link to docs.

import uuid
my_id = uuid.uuid4().hex

ffba27447d8e4285b7bdb4a6ec76db5c

UPDATE: trimmed UUIDs (without the dashes) are functionally identical to full UUIDS (discussion). The dashes in full UUIDs are always in the same position (article).

Upvotes: 55

abdullahselek
abdullahselek

Reputation: 8433

I came up with a different solution that worked for me as expected with Python 3.7.

import uuid

uid_str = uuid.uuid4().urn
your_id = uid_str[9:]

urn is the UUID as a URN as specified in RFC 4122.

Upvotes: 5

Eliethesaiyan
Eliethesaiyan

Reputation: 2322

[update] i added str function to write it as string and close the file to make sure it does it immediately,before i had to terminate the program so the content would be write

 import uuid
 def main():
     a=input("What's your name?")
     print(uuid.uuid1())
 main()
 f=open("file.txt","w")
 f.write(str(uuid.uuid1()))
 f.close()

I guess this works for me

Upvotes: 2

Wayne Werner
Wayne Werner

Reputation: 51807

It's probably because you're not actually closing your file. This can cause problems. You want to use the context manager/with block when dealing with files, unless you really have a reason not to.

with open('file.txt', 'w') as f:
    # Do either this
    f.write(str(uuid.uuid1()))
    # **OR** this.
    # You can leave out the `end=''` if you want.
    # That was just included so that the two of these
    # commands do the same thing.
    print(uuid.uuid1(), end='', file=f)

This will automatically close your file when you're done, which will ensure that it's written to disk.

Upvotes: 2

sumit
sumit

Reputation: 3720

you can try this !

 a = uuid.uuid1()
 str(a)
 --> '448096f0-12b4-11e6-88f1-180373e5e84a'

Upvotes: 268

Related Questions