Python USB 有时无法识别

Python USB sometimes not recognized

我有代码应该检查用户在出现提示时插入的 U 盘中是否存在某个文件。问题是脚本有时会成功,有时会在具有所需批处理文件的相同 USB 记忆棒的完全相同的机器上失败。除非我能让脚本足够一致,否则我的经理无法签署此脚本。

我已经在我的代码中检查了最高为 H 的驱动器,因此我排除了 USB 设备可能在不同的驱动器中,因为我的代码会考虑到它。

这是我检查文件的代码部分(没有其他驱动器,因为它是多余的):

rcode = mbox(u'Attention!', u'Please insert burn-in USB stick.', 0x41)

# Run burn-in if ok
if rcode == 1:
    time.sleep(20)   # Wait for USB to be recognized
    if os.path.isfile(r'D:\burnin.bat'):
        os.chdir('D:')
        rcode = call('burnin.bat > NUL', shell = True)
        if rcode != 0:
            print 'Failed.'
            log.write('FAIL - Failed to run burn-in test\r\n'
                      '       Error: {}\r\n'.format(rcode))
        else:
            print 'Done.'
            log.write('OK   - Burn-in test completed successfully\r\n')

            #Check SMART parameters
            dataOne = diskOne(log)
            smartTest(log, dataOne)
            print 'Disk One Done'
            dataTwo = diskTwo(log)
            smartTest(log, dataTwo)
            print 'Disk Two Done'

    elif os.path.isfile(r'E:\burnin.bat'):
        os.chdir('E:')
        rcode = call('burnin.bat > NUL', shell = True)
        if rcode != 0:
            print 'Failed.'

            log.write('FAIL - Failed to run burn-in test\r\n'
                      '       Error: {}\r\n'.format(rcode))
        else:
            print 'Done.'
            log.write('OK   - Burn-in test completed successfully\r\n')

            #Check SMART parameters
            dataOne = diskOne(log)
            smartTest(log, dataOne)
            print 'Disk One Done'
            dataTwo = diskTwo(log)
            smartTest(log, dataTwo)
            print 'Disk Two Done'

以前睡眠语句只等待 10 秒,所以我将它移到了 20 秒。此外,在文件检查之前有一些 SMART 参数检查,我将其删除以查看它是否干扰了我的脚本。尽管进行了这些更改,我的代码仍然没有足够一致地传递给我们的生产团队。

我想知道是否有更好的方法来找到这个文件并使我的脚本更加一致。我记得在使用 Ruby.

进行网络自动化时看到过这个不一致的问题

对于非常晚的更新表示歉意。代码中没有错误。我确定这是硬件问题。我使用的 USB 密钥很便宜而且质量很差。我已经建议制作团队使用不同的 USB,因为没有遇到这种故障。