У меня есть try/except
ниже, который копирует файл .txt
в таблицу с использованием разделителя ;
. Мне бы хотелось, чтобы, когда в этом файле была обнаружена ошибка и была предотвращена вставка в таблицу, строка была удалена и процесс перезапущен.
Но при текущем способе он просто удаляет строку и завершает весь процесс, l oop не продолжается. Любые предложения?
regex = r'CONTEXT: COPY tbl_name, line (.*): "'
for msl in files:
try:
if msl == '/etc/data/file.txt':
with open(msl, 'r') as line: # read
print("[INFO] Inserting data in table: tbl_name")
cur.copy_from(line, 'tbl_name', sep=';') # insert and delimiter `;`
conn.commit() # commit execution
print("[OK] Inserted data in table: tbl_name")
else:
print("[ERROR] Not found file")
except Exception as e:
conn.rollback()
error = re.findall(regex, str(e))
os.system('''sed -e '{}d' {}'''.format(error[0],msl))
print("[INFO] Action taken to delete the line: {}".format(error[0]))
pass