В общем решил вопрос. Как мне кажется жутким костылем.
Я в функции которая получает адрес файла вызвал функцию которая обрабатывает этот же файл и передал ему переменную с адресом файла.
Заработало.
Выглядит вот так.
Подскажите это прям жуткий костыль? Или приемлемое решение?
Функция которая обрабатывает файл:
def import_csv_orders(orders_file): # импорт csv в базу данных
con = sqlite3.connect('razbor.db')
cur = con.cursor()
print(f'ордер файл {orders_file}')
orders = orders_file
with open(orders, newline='') as csvfile: # чтение файла
rows = csv.reader(csvfile, delimiter=';') # чтение файла
counter = 0
for row in rows: # разбор файла
print(row)
# присваеваем запрос переменной
sqlite_insert_query = """INSERT INTO orders
(supply, customer_name, customer, code_ps_d, material, scope_of_delivery, unit, quantity_in_pieces, picking_date, batch, fresh, vsd, Transporting_the_second_arm)
VALUES
(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);"""
cur.executemany(sqlite_insert_query, rows) # запрос совместно с кортежем данных из csv файла
counter += 1
con.commit()
color_txt_print('База Orders загружена успешно', 'система')
Функция которая получает путь и в ней же вызвана функция обработки файла:
def open_file_orders(): # выбор файла Ордерс
app = QtWidgets.QApplication([])
path_file = QtWidgets.QFileDialog.getOpenFileName(None, directory=r'C:\Users\tomhu\Desktop', filter="Data Base (*.csv)")[0]
print(path_file)
form.ordersLine.setText(path_file)
print(f"Выбран ордерс путь {path_file}")
print(type(path_file))
import_csv_orders(path_file) # вызываем функцию обработки файла и передаем в параметры путь до файла
print('База ордерс загружена')