使用python struct.error来停止一个函数?

时间:2017-03-29 18:10:40

标签: python

我试图为我的程序(python)编写一个小函数,它将一些数据写入csv文件。输入数据来自另一个文件。两个文件都打开了! 实际读写过程的代码是:

while aux != '':
     data = f.read(4)
     data = unpack('I', data)
     data = list(data)
     writer.writerow(data)
else:
     print('done')

此代码到目前为止工作正常,但有时我的输入数据在最后一个读取过程中没有留下4个字节,所以它给了我错误" struct.error:unpack需要一个字符串长度为4"。

的论点

这对我来说完全没问题,我最后不介意一些数据,但这个错误会阻止我的整个程序。 如果发生此错误,有没有办法停止该功能并返回主程序?或者只是停止while循环并继续使用"否则:"一部分?

1 个答案:

答案 0 :(得分:0)

这应该这样做:

try:
    data = unpack('I', data)
except struct.error as err:
    print(err)

通过这种方式,您可以知道何时出现问题,但程序执行将继续。

请阅读Python error handling了解完整故事。