2017-07-19 26 views
1

私は起動可能なUSBドライブを作成しようとしており、USBをFAT32にフォーマットしてすべてのファイルを取り出す必要があります。Pythonを使用してUSBドライブをFAT32にフォーマットする

純粋なpythonを使用してUSBドライブをフォーマットすることは可能ですか?外部コマンドを使用せずにFAT32にフォーマットできますか?

私はこれを行うことができます:sudo dd if=/dev/zero of=/dev/sdb bs=4k && sync USBドライブをフォーマットするにはどうすれば似たようなことができますか?

+0

Windowsを使用している場合:https://bytes.com/topic/python/answers/537724-formatting-device-script-windows – inspectorG4dget

+0

@ inspectorG4dget何Linuxについて? – owasp

+0

'dd'を動作させるために' sudo'が必要な場合は、Pythonプログラムでも 'sudo'が必要です。それは大丈夫ですか? –

答えて

1

次のインライン化をsubprocessを使用することができますが、あなたが質問に与えたddコマンドに近い近似です。完了後にsyncを強制する方法があるかどうかはわかりません。

import io 
block = b'\0' * 4096 
with io.FileIO('/dev/sdb', 'w') as f: 
    while f.write(block): 
     pass 
+0

これは少し説明できますか?私はこれも本当に感謝していますが、数字はどこで得られましたか?io.Fileは何をしますか? – owasp

+0

また、各項目を '\ x00'にするのに' b "{}"。 – owasp

+0

@owasp [io.FileIO']のドキュメント(https://docs.python.org/3/library/io.html#raw-file-io)を見ると、それは生のバッファされていないあなたが必要とするものであるファイルインターフェイス。 '4096'は' 4k'に相当し、 '4 * 1024'は' 1024'に最も近い2進数で '1000'です。 'format'を使う必要はありません。' block'は既に 'write'が必要とするバイト文字列です。 –

0

あなたはbashのコード

+0

私はサブプロセスにしたくない、私は純粋なpythonでそれをしたい – owasp

関連する問題