我有代码可以检查用户在提示时插入的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自动化时看到了这种不一致的问题。
答案 0 :(得分:0)
为极晚更新道歉。代码中没有错误。我确定这是一个硬件问题。我使用的USB密钥价格便宜且质量差。我已经建议制作团队使用不同的USB,因为没有遇到过这种故障。