首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在处理文件时找出异常的位置

在处理文件时找出异常的位置
EN

Stack Overflow用户
提问于 2018-03-20 22:59:42
回答 2查看 94关注 0票数 1

我正在用Python处理一些半结构化的文档,我有一些代码可以将文件读入元组并遍历每一行并执行一个函数。是否有一种方法可以在处理的文件中找到遇到错误的确切行?

代码语言:javascript
运行
复制
c = tuple(open("file", 'r'))

for element in c:
    if (condition is met):
        do something
    else:
        do something else

其结果应该是:

代码语言:javascript
运行
复制
Error: in line # of "file"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-20 23:05:08

enumerate应该会有所帮助:

代码语言:javascript
运行
复制
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))

上述情况会产生一个错误,例如:

代码语言:javascript
运行
复制
got error OSError('oops!',) on line 4

尽管作为良好的实践,您通常会将Exception替换为您希望捕获的任何错误。

票数 3
EN

Stack Overflow用户

发布于 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,因为它会捕获所有异常,甚至那些您不期望的异常。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49395512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档