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,因为没有遇到这种故障。
我有代码应该检查用户在出现提示时插入的 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,因为没有遇到这种故障。