我正在尝试制作一个Python 3.3程序,用于在Windows中格式化驱动器,例如SD卡或USB闪存驱动器。我尝试了这里的代码:http://bytes.com/topic/python/answers/537724-formatting-device-script-windows。起初它给了我一个错误,但经过一些调整后没有出现错误。它运行了,但我的USB驱动器上没有发生任何事情。以下是我使用的代码(这是使用ctypes模块)请帮忙!
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
myFmtCallback
接收三个参数:命令、修饰符和参数。打印出命令 和 参数,也许还有修饰符。参数提供了额外的信息,比如它是否失败了。 - icktoofaymyFmtCallback
函数仅在此处调用:FMT_CB_FUNC(myFmtCallback))
。 - Luke DinklerFMIFS_HARDDISK = 0x0C
,0x0C
应该用文本形式表示(加上引号)。感谢你的帮助!(愚蠢的错误) - Luke Dinkler