How do I convert a Python UUID into a string?
Solution 1
you can try this !
a = uuid.uuid1()
str(a)
--> '448096f0-12b4-11e6-88f1-180373e5e84a'
Solution 2
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).
Solution 3
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.
Solution 4
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.
Solution 5
[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
Related videos on Youtube
![Alphin Philip](https://i.stack.imgur.com/hCaXH.jpg?s=256&g=1)
Alphin Philip
Updated on June 23, 2021Comments
-
Alphin Philip about 3 years
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.
-
Ignacio Vazquez-Abrams about 8 yearsHave you had a chance to look at the
uuid
documentation? -
Alphin Philip about 8 years@IgnacioVazquez-Abrams I'm quite new to python and I'm sorry, but I'm not too sure what you mean.
-
khelwood about 8 yearsYou can change a
uuid
to a string by puttingstr(...)
around it, if that is actually what you're asking. -
Eliethesaiyan about 8 yearsbecause the input is gained through main..is considered as variable...try to use quotation around when you re input... and also f=open("file.txt") not with dot
-
Greg over 5 yearsHow about uuid.uuid4().hex? It returns a 32-character string.
-
-
Alphin Philip about 8 yearsI tried this and it keeps coming back as: TypeError: write() argument must be str, not UUID
-
Alphin Philip about 8 yearsI tried this and it keeps coming back as: TypeError: write() argument must be str, not UUID#
-
Wayne Werner about 8 years@AlphinPhilip updated my answer - you can do either one. The latter assumes that you're running python3.x+ or have run
from __future__ import print_function
-
Eliethesaiyan about 8 years@AlphinPhilip i hope you fixed it by then
-
Felipe almost 7 yearswho downvoted this? The question is "How do I change a UUID to a string?" and this answers the question just fine. It's not going to return anything because it's showing how to turn a UUID into a string representation. Voting +1
-
djvg over 6 yearsNot sure if this matters to you, but it seems to me that the uuid1 you are printing is not the same as the one you are writing to file, because
uuid.uuid1() != uuid.uuid1()
-
Eliethesaiyan over 6 years@Dennis, i was giving alternatives...either he can print it or generate it in astring variable and write it...or generate it and write it directly
-
Adam Mlodzinski over 4 yearsWill
str(UUID)
always return a string consisting of alphanumerics-plus-dashes? I couldn't find docs onUUID.__str__()
. Or, would I need to use something likeUUID.hex()
orUUID.urn()
, to ensure there are no non-printable characters in the resultant string? -
sumit over 3 years@AdamMlodzinski Yes, from official python documentation docs.python.org/3/library/uuid.html#module-uuid and also check the source code for str method github.com/python/cpython/blob/master/Lib/uuid.py#L279
-
Rohan Devaki about 3 yearsthankyou sir, do you have link to the docs?
-
Rohan Devaki about 3 yearsand will this still be unique? if we remove the dashes?
-
andyw about 3 yearsi've edited my answer to make link to docs more obvious.
-
andyw about 3 yearsupdated my answer with respect to the impact of removing dashes.