在Python中格式化驱动器

时间:2014-12-19 15:07:11

标签: python windows python-3.x ctypes

我正在尝试制作一个Python 3.3程序来格式化Windows中的驱动器,例如SD卡或USB记忆棒。我在这里尝试了代码:http://bytes.com/topic/python/answers/537724-formatting-device-script-windows。起初它给了我一个错误,但经过一些调整后它没有。它运行但我的USB驱动器没有任何反应。这是我正在使用的代码。 (这是使用ctypes模块btw)请帮忙!

def myFmtCallback(command, modifier, arg):
    print(command)
    return 1    # TRUE

def format_drive(Drive, Format, Title):
    fm = windll.LoadLibrary('fmifs.dll')
    FMT_CB_FUNC = WINFUNCTYPE(c_int, c_int, c_int, c_void_p)
    FMIFS_HARDDISK = 0x0C
    fm.FormatEx(c_wchar_p(Drive), FMIFS_HARDDISK, c_wchar_p(Format),
                c_wchar_p(Title), True, c_int(0), FMT_CB_FUNC(myFmtCallback))

我相应地调用了函数:

format_drive('F:\\', 'NTFS', 'USBDrive')

程序打印出来:

>>>
9
11

2 个答案:

答案 0 :(得分:1)

我找到了解决方案!这一行:

 FMIFS_HARDDISK = 0x0C

应该是这样的

 FMIFS_UNKNOWN = 0

只是简单地按照未知格式进行格式化!

答案 1 :(得分:0)

我对Windows调用的文档看起来很长很难,我在Microsoft上找不到与此处调用FormatEx的方式相匹配的任何内容。

最后我发现了这个:http://doxygen.reactos.org/df/d85/fmifs_8h_source.html

您可以在此处找到如何设置群集大小的示例。