2016-09-11 10 views
0

コンピュータのUUIDを取得し、Pythonの変数として設定する方法をインターネットで探しています。Python - コンピュータのUUIDを見つけて変数として設定する方法

私がやったやり方のいくつかはうまくいかなかった。

オリジナルのアイデア:

import os 
x = os.system("wmic diskdrive get serialnumber") 
print(x) 

しかし、これは動作しません、と私だけが一意のハードディスクドライブIDまたは識別子の他のタイプを見つけることができる方法が自分である場合、私は疑問に思って0

を返します。 Pythonで。

+0

お使いのOSは? – elethan

答えて

2

os.system関数は、標準出力ではなく、実行されたコマンドの終了コードを返します。 Python official documentationによれば

:Unix上

は、戻り値は、待機のために指定された形式()で符号化プロセスの終了状態です。

Windowsの場合、戻り値はコマンド実行後にシステムシェル によって返された値です。

出力を必要に応じて取得するには、サブプロセスモジュールで定義されているいくつかの関数を使用することをお勧めします。あなたのシナリオはかなりシンプルなので、subprocess.check_outputはうまく動作します。

あなたはちょうどあなたの代わりにこれでコードを掲載コードを交換する必要があります。

import subprocess 
x = subprocess.check_output('wmic csproduct get UUID') 
print(x) 
+0

ありがとう、これは働いた。 (((認定)))) –

+0

あなたは正しい答えとして受け入れることができますか? – slashCoder

+0

私が持っている((()認定))あなたの仲間、 –

0

あなたは標準ライブラリuuidモジュールからuuid1を使用することができます。ホストID、シーケンス番号、および現在の時刻からのUUIDを生成する

import uuid 
myuuid = uuid.uuid1() 

をこれがために使用することができます。

しかし、あなたはこのUUIDを使用する場所、それが コンピュータのネットワークアドレスを含むUUIDを作成するので、それは

プライバシーを損なう可能性があるため、あなたが注意しなければならないことに注意してください。

これがあなたが探しているものでない場合、the uuid modul eにはuuidsを生成するための他の多くの優れた方法があります。

また、Pythonでハードドライブシリアル番号を取得する方法の詳細については、this answerを参照してください。

+0

彼はUUIDを生成したいとは思っていませんが、プログラムが実行されているコンピュータの一意の識別子を取得したいと考えています。 –

+0

これはMACアドレスを取得するだけではありませんか?私はハードドライブIDのような何かをより安全にしたいです。 –

+0

@BillDはい、MACアドレス、その他の値。 – elethan

2

目的は、HDDのシリアル番号を取得することであるならば、1が行うことができます:

をLinuxでは( Windowsので

>>> import os 
>>> os.popen("hdparm -I /dev/sda | grep 'Serial Number'").read().split()[-1] 

あなたが情報を取得する対象のブロックのディスク識別子)とは/ dev/sdaにを置き換えます
>>> import os 
>>> os.popen("wmic diskdrive get serialnumber").read().split()[-1] 
+0

Windows上であなたは 'popen'せずにそれを実行します。 ' WMIインポートWMI WMI(から)Win32_ComputerSystemProduct()[0] .UUID' – zvi

関連する問題