【问题标题】:Is there a way to get the python program to "refresh the sd drive connection"有没有办法让 python 程序“刷新 sd 驱动器连接”
【发布时间】:2014-05-20 08:51:22
【问题描述】:

我女儿的 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() 

【问题讨论】:

    标签: python file sd-card


    【解决方案1】:

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

    您可以在命令行中使用DevCon 执行此操作:http://support.microsoft.com/kb/311272

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

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

    【讨论】:

    • Cheers Hetman,最后我只是运行程序,反复删除安装驱动器。重新插入了大约 80 次,丢失了大约 80 项,但这比所有都好。我完全格式化,对 SD 进行了大量测试,此后没有任何问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 2019-07-12
    • 2018-05-26
    相关资源
    最近更新 更多