2017-07-19 131 views
1

我正在嘗試創建可啓動的USB驅動器,並且需要將USB格式化爲FAT32,以便我可以將所有文件提取到FAT32中。使用Python將USB驅動器格式化爲FAT32

是否可以使用純python格式化USB驅動器?我可以在不使用外部命令的情況下將其格式化爲FAT32嗎?

我知道在bash中,我可以這樣做:sudo dd if=/dev/zero of=/dev/sdb bs=4k && sync來格式化USB驅動器,我怎樣才能使用python做類似的操作?

+0

如果你正在使用Windows:https://bytes.com/topic/python/answers/537724-formatting-device-script-windows – inspectorG4dget

+0

@ inspectorG4dget Linux怎麼樣? – owasp

+0

如果你需要'sudo'來使'dd'工作,你也需要在你的Python程序中使用'sudo'。這可以嗎? –

回答

1

下面是一個近似於您的問題給了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

也不會'b「{}」。格式(塊)'把每個項目變成'\ x00'工作得更好。 – owasp

+0

@owasp如果你看看[io.FileIO']的文檔(https://docs.python.org/3/library/io.html#raw-file-io),你可以看到它是一個未加載的文件界面,這是你需要的。 '4096'相當於'4k',它是'4 * 1024',其中'1024'是最接近'1000'的二進制數。沒有必要使用'format','block'已經是一個字節字符串,它正是'write'所需要的。 –

0

您可以使用subprocess內聯的bash代碼

+0

我不想子進程,我希望它在純python – owasp

相關問題