Python USB有时无法识别

时间:2015-03-08 15:46:30

标签: python python-2.7 automation usb

我有代码可以检查用户在提示时插入的USB记忆棒中是否存在某个文件。问题是脚本有时会成功,有时会在具有相同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进行Web自动化时看到了这种不一致的问题。

1 个答案:

答案 0 :(得分:0)

为极晚更新道歉。代码中没有错误。我确定这是一个硬件问题。我使用的USB密钥价格便宜且质量差。我已经建议制作团队使用不同的USB,因为没有遇到过这种故障。