Форум сайта python.su
Добрый день!
Начал изучать Python и работать с SQL и стало интересно, если, допустим у меня есть текстовый файл, как его перевести в Excel через Python и работать с ним.
Изначально решил просто его переделать в Excel и разделить по столбцам и ячейкам, что спустя некоторое время получилось.
Затем долго ломал голову, как работать с данным файлом через Python, чтобы при любых изменениях файла они сразу отображались.
Нашел решение воспользоваться библиотеками sqlite3 и pandas и перевести файл в формат БД.
Решение действенное, но с одним существенным минусом. Так как не нашел способа работы с БД, не могу видеть правильно ли перенеслись данные из Excel в SQL.
Вроде уже кучу разных штук скачал для работы с БД, но ни с одной так и не разобрался как работать, да и не особо хочется. Ближе всех была SQLite, но затык с тем, что не могу найти саму программу, есть только консоль, которая нафиг мне не нужна (если кто подскажет, что делать дальше после установки, буду очень благодарен).
Ну, и основной вопрос: решил обойти эту тему таким образом, что полученную и изменяемую БД хочу потом заново переводить в файл Excel, т.к. как я понял при внесении изменений в БД первоначальный файл Excel не изменяется, а изменений я не вижу.
Нашел решение на одном из сайтов и на практике оно работает, хоть до конца и не разобрался, что оно делает.
import sqlite3
import xlsxwriter
workbook = xlsxwriter.Workbook('xxx.xlsx')
worksheet = workbook.add_worksheet()
con1 = sqlite3.connect('xxx.db')
cur1 = con1.cursor()
cur1.execute(“”“SELECT * FROM xxx;”“”)
my_select = cur1.execute(“”“SELECT * FROM xxx;”“”)
for i, row in enumerate(my_select):
for j, value in enumerate(row):
worksheet.write(i, j, row)
workbook.close()
Но при использовании столкнулся с такой проблемой, что при выводе данных из БД в Excel в новый файл формата .xlsx отправляются только сами данные, а имена столбцов пропадают.
Что можно делать, чтобы всё-таки данные переносились с именами столбцов.
Или хотя бы натолкните на мысль, что почитать, чтобы понять.
И в идеале не спрашивайте зачем такие извращения, я только учусь. Поэтому всё же интересен именно ответ на вопрос, а не предложение как это сделать другими способами.
Заранее благодарен.
Офлайн
Основной вопрос: что нужно добавить в код выше, чтобы он дополнительно выгружал названия столбцов в Excel.
Офлайн
Приложите текстовый файл,
приведите пример что вы хотите видеть в файле xlsx.(итоговый файл,который будет результатом работы программы)
Офлайн
Не могу понять как добавлять больше одного файла.
Это изначальный текстовый.
Его просто копировал в Excel и там уже не помню, что делал, но делил через запятые каждую строку на отдельные столбцы. Всё получалось.
Далее получившийся Excel превращал с помощью Python в файл БД.
Планировал работать внутри Python именно с файлом БД, но не вижу результат.
Поэтому хочу снова этот файл БД перевести в Python только, чтобы он уже отображал все внесенные изменения.
С помощью кода выше получается, но он теряет имена столбцов. Не скажу, что конкретно сейчас это существенно, но проблема есть и интересно её решение. Может в будущем это как раз-таки будет уже существенно.
Прикреплённый файлы:
products.txt (27,1 KБ)
Офлайн
Я думаю у вас неудачный подход к работе. Если у вас много таблиц, вы хотите атомарно вносить изменения, то гораздо лучше просто взять sqlite и вносить изменения только в него.
Все вопросы с экспортом импортом в эксель csv и т.п. сразу умрут.
Существует огромное число инструментов для интерактивной работы с файлами такого вида. Большое число инструментов это гораздо лучше и надежнее чем единственный доступный инструмент - exel
Возьмите например https://sqlitebrowser.org/
ATWAlivВсе разультаты можно посмотреть в GUI.
но не вижу результат.
Офлайн
doza_and
Возьмите например https://sqlitebrowser.org/
Офлайн
ATWAlivНа мой взгляд,если хочется передать таблицу в Excel, то сначала готовим csv, и его уже открываем в Excel
Или хотя бы натолкните на мысль, что почитать, чтобы понять.
ATWAlivУ новичков заметил есть проблема с мотивацией,они думают Зачем мне просто писать какие-то скучные простые алгоритмы,напишу-ка я что-нибудь полезное и интересное, программу какую-нибудь.
Начал изучать Python
Офлайн