MST

星途 面试题库

面试题:Python复杂文件操作与异常处理

假设有一个大型文本文件,文件中每行包含多个用逗号分隔的数字。编写Python代码实现读取该文件,将每行数字解析并计算其平均值,同时要处理可能出现的文件格式错误(例如某行不是数字)、文件编码错误等异常。如果遇到格式错误的行,记录错误行号到一个新的日志文件中。
14.3万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
try:
    error_lines = []
    with open('large_text_file.txt', 'r', encoding='utf-8') as file:
        for line_num, line in enumerate(file, 1):
            try:
                numbers = list(map(int, line.strip().split(',')))
                average = sum(numbers) / len(numbers) if numbers else 0
                print(f"Line {line_num}: Average = {average}")
            except ValueError:
                error_lines.append(line_num)

    if error_lines:
        with open('error_log.txt', 'w') as error_file:
            for line_num in error_lines:
                error_file.write(f"Line {line_num} has format error\n")

except UnicodeDecodeError:
    print("There was an encoding error while reading the file.")