Создать файл Excel из PythonPython

Программы на Python
Ответить
Anonymous
 Создать файл Excel из Python

Сообщение Anonymous »

Мой проект заключается в обработке различных файлов Excel. Для этого я хотел бы создать один файл, содержащий некоторые данные из предыдущих файлов. Все это для того, чтобы иметь свою базу данных. Цель состоит в том, чтобы получить графики этих данных. Все это автоматически.

Я написал эту программу на Python. Однако для его запуска требуется 20 минут. Как его оптимизировать?
Кроме того, в некоторых файлах у меня одинаковые переменные. Поэтому хотелось бы, чтобы в конечном файле одинаковые переменные не повторялись. Как сделать?

Вот моя программа:

Код: Выделить всё

import os
import xlrd
import xlsxwriter
from xlrd import open_workbook

wc = xlrd.open_workbook("U:\\INSEE\\table-appartenance-geo-communes-16.xls")
sheet0=wc.sheet_by_index(0)

# création

with xlsxwriter.Workbook('U:\\INSEE\\Department61.xlsx') as bdd:
dept61 = bdd.add_worksheet('deprt61')

folder_path = "U:\\INSEE\\2013_telechargement2016"

col=8
constante3=0
lastCol=0
listeV = list()

for path, dirs, files in os.walk(folder_path):
for filename in files:
filename = os.path.join(path, filename)
wb = xlrd.open_workbook(filename, '.xls')
sheet1 = wb.sheet_by_index(0)
lastRow=sheet1.nrows
lastCol=sheet1.ncols
colDep=None
firstRow=None
for ligne in range(0,lastRow):
for col2 in range(0,lastCol):
if sheet1.cell_value(ligne, col2) == 'DEP':
colDep=col2
firstRow=ligne
break
if colDep is not None:
break
col=col-colDep-2-constante3
constante3=0
for nCol in range(colDep+2,lastCol):
constante=1
for ligne in range(firstRow,lastRow):
if sheet1.cell(ligne, colDep).value=='61':
Q=(sheet1.cell(firstRow, nCol).value in listeV)
if Q==False:
V=sheet1.cell(firstRow, nCol).value
listeV.append(V)
dept61.write(0,col+nCol,sheet1.cell(firstRow, nCol).value)
for ligne in range(ligne,lastRow):
if sheet1.cell(ligne, colDep).value=='61':
dept61.write(constante,col+nCol,sheet1.cell(ligne, nCol).value)
constante=constante+1

elif Q==True:
constante3=constante3+1 # I have a problem here. I would like to count the number of variables that already exists but I find huge numbers.
break
col=col+lastCol

bdd.close()
Спасибо за вашу помощь в будущем. :)

Подробнее здесь: https://stackoverflow.com/questions/437 ... rom-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»