我的女儿SD卡已经腐败,我正在尝试恢复照片/文件。我尝试了各种恢复软件但无济于事。
但是我发现,如果我使用MSDOS,我可以复制各种照片,但间歇性地失败并且说“驱动器中没有磁盘”#34; 我假设它试图复制的文件已损坏,我可以通过拔出SD卡并重新插入来克服这个问题。
一个程序的机会! :) - 我通过dos获取了文件名,创建了一个文本文件并敲了一个粗略的程序....但是我继续得到"在驱动器中没有磁盘"
因此......有没有办法让python程序刷新sd驱动器连接"
非常感谢。
#!/usr/bin/env python
""" File copy program"""
import os
import shutil
def main():
Basepathfile = os.path.dirname(os.path.abspath(__file__))
FileName = 'Filenames.txt'
PrelimPathFile = os.path.join(Basepathfile, FileName )
PathFile = os.path.normpath(PrelimPathFile)
Filename1 = open(PathFile, 'r')
Filename2 = 'c:\\Lili\\'
for line in Filename1:
line = line.replace('\r\n', '').replace('\r', '').replace('\n', '')
Filename1 = 'f:\\DCIM\\Camera\\'+ line
Filename2 = 'c:\\Lili\\'+ line
try:
shutil.copy2(Filename1, Filename2)
print 'Copied... '
print Filename1, '...to...', Filename2
except:
print 'Failed to copy ', Filename1, ' to ', Filename2
if __name__ == '__main__':
main()
答案 0 :(得分:1)
这听起来更像是关于Windows而不是Python的问题。如果您的SD卡是通过USB读卡器插入的,最简单的方法可能是禁用并重新启用它所连接的USB集线器设备。这将导致Windows重新枚举连接到该集线器的所有USB设备。
您可以使用DevCon
:http://support.microsoft.com/kb/311272
如果这不是USB设备,我不太确定,但也许DevCon仍然可以尝试直接禁用和重新启用设备。
或者,您可以尝试使用robocopy
手动执行此操作。它具有不复制已复制文件的选项。您仍然需要手动拉SD卡几次,但如果您很幸运,SD卡将保持足够长的时间以确认最终所有内容都被拉出。