有没有办法让python程序;刷新sd驱动器连接“;

有没有办法让python程序;刷新sd驱动器连接“;,python,file,sd-card,Python,File,Sd Card,我女儿的SD卡已损坏,我正在尝试恢复照片/文件。我尝试过各种恢复软件,但都没有用 然而,我发现,如果我使用MSDOS,我可以复制各种照片,尽管这会间歇性地失败并显示“驱动器中没有磁盘” 我假设它试图复制的文件已损坏,我可以通过拔出sd卡并重新插入来克服这一问题 所以有机会参加一个项目!:)-我通过dos获得文件名,创建了一个文本文件,并编写了一个粗略的程序。。。。然而,我不断得到“驱动器中没有磁盘” 因此。。。有没有办法让python程序“刷新sd驱动器连接” 非常感谢 #!/usr/bin/e

我女儿的SD卡已损坏,我正在尝试恢复照片/文件。我尝试过各种恢复软件,但都没有用

然而,我发现,如果我使用MSDOS,我可以复制各种照片,尽管这会间歇性地失败并显示“驱动器中没有磁盘” 我假设它试图复制的文件已损坏,我可以通过拔出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() 

这听起来更像是关于Windows而不是Python的问题。如果SD卡是通过USB读卡器插入的,最简单的方法可能是禁用并重新启用它所连接的USB集线器设备。这将导致windows重新枚举连接到该集线器的所有USB设备

您可以使用
DevCon
从命令行执行此操作:

如果这不是USB设备,我不太确定,但也许DevCon仍然可以通过尝试直接禁用和重新启用设备来实现


或者,您可以尝试使用
robocopy
手动执行此操作。它可以选择不复制已复制的文件。你仍然需要手动拉几次SD卡,但如果你幸运的话,SD卡将保持足够长的时间,以确认最终所有东西都被拉过了。

Hetman欢呼道,最后我只是运行了这个程序,反复卸下和安装驱动器。重新插入了大约80条,丢失了大约80条,但这比全部都好。我完整的格式,沉重的SD测试,并没有任何问题,因为