2017-07-19 132 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

相关问题