Skrypt miał "czyścić" kolumnę excela, zapobiegać literówkom. Przykładowo dla "lekaz" zmienić na lekarz. Przygotowałam plik txt z możliwymi słowami, jest ich około 8. Teraz tak, korzystam z odległości edycyjnej jeśli wynosi 1 lub 2, wtedy zamieniam nazwę na nazwę z pliku która pasuje. Wrzucam to wszystko do listy, wszystkie wystąpienia kolumny, nieważne czy zmieniłam czy nie. Na koniec zapisuje to do excela. Na pewno plusem by było gdybym zamiast na sztywno wpisywać liczbę kolumn, wyliczyła ją i podała, znaczy wyliczyła ile jest kolumn w excelu. Coś jeszcze? Jak inaczej mogłabym podejść do problemu?

#!/usr/bin/env python
# -*- coding: utf8 -*-

import editdistance
import xlrd
import xlwt
import unicodedata
from xlutils.copy import copy
from xlrd import open_workbook

list = []
array = []

def improveName(namee, namef):
	
	if len(namee)==0:
		namee = "nieznane"
	else:
		difrence = int(editdistance.eval(namee,namef))
		if difrence < 3 and difrence > 0:
			namee = namef
		else:
			namee = namee
	return namee

with open("wyksztalcenie.txt", "r") as ins:
	for line in ins:
		array.append(line)
		
book = xlrd.open_workbook("Pracownicy2007.xls")

for sheet_name in book.sheet_names():
	sheet = book.sheet_by_name(sheet_name)
	for i in range (1,1205):
		namee = sheet.cell(i, 2).value
		for j in range(len(array)):
			namef=array[j]
			namee = improveName(namee,namef)
		list.append(namee)

rb = open_workbook("Pracownicy2007.xls")
v = 1
wb = copy(rb)
s = wb.get_sheet(0)
for item in list:
	s.write(v,2,item)
	v = v + 1
wb.save("Pracownicy2007.xls")