这是我关于堆栈溢出的第一个问题。请忽略任何格式错误。我试图在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))