Pythonでカメラ、SDカード、外付けハードドライブなどの接続されたストレージデバイスのリストを取得する方法はありますか?Python:利用可能なストレージデバイスのOS非依存のリスト
答えて
次はLinuxとWindowsで動作するはずです。 これは外部だけでなくすべてのドライブを一覧表示します!
import subprocess
import sys
#on windows
#Get the fixed drives
#wmic logicaldisk get name,description
if 'win' in sys.platform:
drivelist = subprocess.Popen('wmic logicaldisk get name,description', shell=True, stdout=subprocess.PIPE)
drivelisto, err = drivelist.communicate()
driveLines = drivelisto.split('\n')
elif 'linux' in sys.platform:
listdrives=subprocess.Popen('mount', shell=True, stdout=subprocess.PIPE)
listdrivesout, err=listdrives.communicate()
for idx,drive in enumerate(filter(None,listdrivesout)):
listdrivesout[idx]=drive.split()[2]
# guess how it should be on mac os, similar to linux , the mount command should
# work, but I can't verify it...
elif 'macosx' ...
do the rest....
Linux用の上記の方法は非常に、粗である、とあなたは何かがより微調整、python-dbus
で照会に見たい場合などsys
とprocfs
のようにドライブを返します。
おそらく、現在のユーザー(おそらくデスクトップにログインしているユーザー)が所有しているマウントポイントを検出するステップを追加すると、リストは「外部デバイス」のリストに非常に近くなります。プラグを抜きたいものをまずアンマウントすることができます。 – 9000
ここでは、[dbus経由でUdiskを使用する方法の例](http://stackoverflow.com/a/5081937/4279)を参照してください。プロパティ[DeviceIsRemovable](http://hal.freedesktop.org/docs/udisks/Device.html#Device:DeviceIsRemovable)が近い可能性があります。 – jfs
あなたは/ proc/mountsをlinuxで読むことができます。 – LtWorf
- 1. 利用可能なホットキーのクロスブラウザのリスト
- 2. php5 +で利用可能なコアクラスのリスト?
- 3. ブーストユニットテスト - 利用可能なテストのリスト
- 4. PHPで利用可能なコレータのリスト?
- 5. homebrew利用可能なコンパイラのリスト
- 6. ジェンキンススクリプトコンソール:利用可能なジェンキンメソッドのリスト?
- 7. Pythonのhashlibを使用した利用可能な非標準ハッシュアルゴリズムの検出
- 8. NPM package.jsonのOS非依存グラントスクリプトコマンド
- 9. Files.walk()OS非依存の問題
- 10. 利用可能なフィルタリング利用可能なタスクグループ別のギャラリストタスク
- 11. 利用可能なロールの春のセキュリティのリスト
- 12. http://axschema.orgとhttp://schemas.openid.netの利用可能な属性のリスト
- 13. 非Python依存関係のないPythonでのXMLの検証
- 14. SBTマルチプロジェクトのテスト依存関係:テストコードを依存するプロジェクトに利用可能にする
- 15. 利用可能なJavaロケールのリストを拡張する方法
- 16. 利用可能な角材料クラスの定義リスト
- 17. 利用可能なデータフレームのリストを取得
- 18. 利用可能な出力オーディオターゲットのリストAVAudioSession
- 19. WiX 3.0:利用可能なUIダイアログのリスト
- 20. 利用可能な言語のリストを取得する
- 21. Z3 Python API - いつ利用可能か
- 22. 再利用可能なプリプロセッサ__COUNTER__
- 23. 再利用可能なコンポーネント
- 24. 利用可能なデータ
- 25. Java - 利用可能なガベージコレクションアルゴリズム
- 26. 利用可能なCRANビネット
- 27. 再利用可能なコントロール
- 28. 可能なAndroidプロジェクトは、他の(非ライブラリ)Androidプロジェクトに依存しますか?
- 29. Pythonのdefaultdict機能はLuaで利用可能です
- 30. maven(プラットフォームに依存しない)で利用可能なプロセッサの数を確認する
「ストレージデバイス」はどのように定義しますか?どのように '接続'? –
@Tichodroma Mac Finder、Windowsエクスプローラ、またはUbuntuファイルブラウザに表示される外部デバイスのリスト。 –
'外部'を定義してください – njzk2