Запись CSV-данных в XLS-файл на Python

#python #pandas

#python #pandas

Вопрос:

У меня есть CSV-файл, и я хочу записать данные из CSV-файла в XLS-файл. Но вот сложная часть, новый CSV-файл генерируется через несколько секунд, и снова мне нужно записать CSV-данные в тот же файл Excel, который уже был сгенерирован, но теперь новые данные будут добавлены в новую строку.

Это не домашнее задание, у меня есть компьютер, который генерирует новый CSV-файл через несколько секунд. И я хочу, чтобы мой лист Excel был обновлен новыми данными файла CSV.

Я ищу решение или частичное решение на python.

Спасибо

Комментарии:

1. Это длительный процесс, в котором csv генерируется каждые несколько секунд?

2. Он генерируется в каталоге, я узнал, что существует сторожевой таймер API, который может искать новые сгенерированные файлы. И да, CSV продолжает генерироваться, пока я не выключу компьютер.

Ответ №1:

Вообще говоря, рабочий процесс, вероятно, будет примерно таким с использованием pandas:

 new_data = pandas.read_csv('new_data.csv', header=0)
all_data = pandas.read_excel('file://excel_file.xlsx')
combined = all_data.append(new_data)
combined.to_excel('excel_file.xlsx')
  

Конечно, вам может потребоваться поработать с некоторыми параметрами, чтобы все соответствовало вашим данным, и, возможно, выполнить этот цикл, чтобы он всегда получал последние изменения и добавлял их.


Полезные документы, которые помогут:

Комментарии:

1. Спасибо за ответ, но я не хочу выполнять эту утомительную задачу добавления всех данных снова и снова. Я ищу что-то, где к существующему файлу Excel добавляются только новые данные.

2. @ViralParmar Не могли бы вы, пожалуйста, объяснить, что вы имеете в виду? Это считывает существующий файл Excel и добавляет новые данные из CSV? Содержит ли CSV также все данные, но добавляются ли новые строки каждые несколько секунд?

3. Каждый раз, когда генерируется новый CSV с несколькими строками, и я хочу, чтобы эти новые строки добавлялись к моему существующему XLS-файлу.

4. @ViralParmar Верно, эти четыре строки кода можно было бы вызывать каждый раз, когда сторожевой таймер API замечает новый CSV-файл. Поскольку CSV содержит только новые строки, а на листе Excel (который вы можете продолжать записывать) есть все предыдущие, добавление добавит только эти новые строки, и оно будет сохранено как файл Excel с тем же именем.

5. Есть ли у вас какие-либо идеи о том, что делать с заголовком в каждом CSV-файле? Я имею в виду, что мне нужны только данные. Я не хочу, чтобы заголовок снова и снова из вновь созданного CSV-файла. Заголовок как в имени столбца.