web-dev-qa-db-ja.com

UUIDを文字列に変更するにはどうすればよいですか?

UUIDをユーザーに割り当て、これを.txtファイルに文書化できるようにする必要があります。これが私が持っているすべてです:

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

私は試した:

f.write(uuid.uuid1())

しかし、何も起こらず、論理的なエラーかもしれませんが、私にはわかりません。

22
Alphin Philip

これを試すことができます!

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

Python 3.7で期待どおりに機能する別のソリューションを思いつきました。

import uuid

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

urnは、 RFC 4122 で指定されているURNとしてのUUIDです。

2
abdullahselek

[更新]文字列として書き込むstr関数を追加し、ファイルを閉じてすぐに実行されるようにします。プログラムを終了してからコンテンツを書き込みます。

 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()

これは私のために働くと思います

2
Eliethesaiyan

おそらく、あなたが実際ファイルを閉じていないからでしょう。これは問題を引き起こす可能性があります。あなたが本当にそうしない理由がない限り、ファイルを扱うとき、context manager/withブロックを使いたいです。

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)

これにより、完了時にファイルが自動的に閉じられ、ディスクに確実に書き込まれます。

1
Wayne Werner