2013-02-11 133 views
-1

嗨即時嘗試從卷名找到devce磁盤例如。Python找到設備磁盤

我輸入爲「共享」的卷名

和回報是什麼盤

目前,我有以下卸載閃存卡。我需要它是什麼磁盤,以便我可以DD圖像。

#!/bin/py 

import os 
import subprocess 

# enter flash card name 
cardName = raw_input('Enter your name of Card: ') 

# unmount flash card 
subprocess.call(['sudo' ,'umount', '/Volumes/' + cardName]) 

目前在OSX tryong這一點,但idealy想它普遍的,或者至少能夠在Rasbian運行,但多數民衆贊成在一個不錯的功能

+0

什麼是卷名? – wRAR 2013-02-11 02:34:59

+0

設備是否可以安裝在任何地方,如果有,在哪裏? – icktoofay 2013-02-11 02:35:32

+0

這是什麼操作系統? – wRAR 2013-02-11 03:11:52

回答

0

不,您不能可靠地將卷標(根本不必存在)轉換爲操作系統設備名稱,甚至可以跨平臺的方式進行轉換。

+0

我不相信它不能做!使用cmd os.system('df -k/Volumes/Untitled')它會返回包含磁盤位置的信息,現在我只需要將其過濾一下如何操作 – Spriggsy 2013-02-11 03:42:27

+0

@Spriggsy它是操作系統特定的,並且只顯示已安裝的設備。 – wRAR 2013-02-11 13:16:57

+0

感謝您的信息,我想這只是意味着在檢查看看哪個操作系統即時運行在開始時,我不接受這個作爲你所有幫助的答案。但是我得到它與 「df'/ Volumes /'+ cardName | awk'{print $ 1}'| tail -n 1」 – Spriggsy 2013-02-11 13:48:54

0

你可以通過這樣的卷名找到設備磁盤。

DISK_BY_LABEL = '/dev/disk/by-label/' 
filename = DISK_BY_LABEL + VolumeName 
devfile = DISK_BY_LABEL + os.readlink(filename) 

注意:/ dev/disk/by-label目錄由udev守護進程創建。

+1

爲了安全起見,我認爲你應該使用'os.path.join'而不是'+'來連接字符串。 – Timo 2013-02-11 02:47:29