python - 有效地读取CSV文件并检查多个潜在错误

时间:2016-11-18 16:09:52

标签: python-3.x

这是我关于堆栈溢出的第一个问题。请忽略任何格式错误。我试图在CSV文件上执行这些任务:检查空字节错误(修复它们),任何其他错误(引发异常),检查否。行(如果没有则引发异常)。我使用下面的代码,工作正常。但我认为它效率不高,因为我正在阅读两次CSV文件。一旦替换空字节,再次检查是否有其他错误。我希望您能帮助我们提高代码效率。我想只浏览一次文件,但要确保完成上述所有任务。提前谢谢!

输出是csv文件

if (any(x in lines[i] for x in ['drop table', 'create table'])):
    os.remove(output)
else:
    with open(output, 'rb') as f:
        reader = csv.reader((line.replace('\0','') for line in f) )
        try:
            for row in reader:
                pass
            try:
                row_count = sum(1 for each in open(output))     
                if row_count != 1:
                    print('Data Fetched into ' + output + ' with ' + str(row_count-1) + ' rows')
                else:
                    raise NoDataFetched
            except NoDataFetched:
                print("No data is fetched. Please check your query")    
        except csv.Error as e:
            print('file %s, line %d: %s' % (output, reader.line_num, e))

0 个答案:

没有答案