我正在用Python处理一些半结构化的文档,我有一些代码可以将文件读入元组并遍历每一行并执行一个函数。是否有一种方法可以在处理的文件中找到遇到错误的确切行?
c = tuple(open("file", 'r'))
for element in c:
if (condition is met):
do something
else:
do something else其结果应该是:
Error: in line # of "file"发布于 2018-03-20 23:05:08
enumerate应该会有所帮助:
for line, element in enumerate(c):
try:
if (condition is met):
do something
else:
do something else
except Exception as e:
print('got error {!r} on line {}'.format(e, line))上述情况会产生一个错误,例如:
got error OSError('oops!',) on line 4尽管作为良好的实践,您通常会将Exception替换为您希望捕获的任何错误。
发布于 2018-03-20 23:33:49
通常,在从文件中读取时使用with关键字是很好的做法,特别是当您期望出现异常时。您还可以使用enumerate来计算行数:
with open(filename) as f: for line_num, line in enumerate(f): try: if (condition is met): do something else: do something else except Exception: print('Error: in line {:d} of file'.format(line_num)) --如果您知道所期望的特定异常,最好不要使用Exception,因为它会捕获所有异常,甚至那些您不期望的异常。
https://stackoverflow.com/questions/49395512
复制相似问题