• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

del

ajuda com gravação de conteudo de listbox para um ficheiro txt

1 mensagem neste tópico

Estou a aprender Python e estou a bloqueado com este problema.

Quero pegar no conteudo de duas listboxes (self.lst e self.lst1) agrupar os dados e grava-los num ficheiro txt. A parte de gravar para txt já consegui, o problema é quando o conteudo da listbox contem por exemplo um caracter "ç". Quando peço para gravar e aparece este erro:

Exception in Tkinter callback

Traceback (most recent call last):

File "C:\ACTIVE~1\lib\lib-tk\Tkinter.py", line 1403, in __call__

return self.func(*args)

File "C:\Users\ME\Desktop\python examples\teste.py", line 122, in savef

h.writelines(lista2)

TypeError: writelines() argument must be a sequence of strings

A função para gravar tem este codigo

def savef(self):
       """
       b=len(self.lst.get(0,END))
       h=[]
       i=[]
       for actual in range(0,b):
           h.append(self.lst.get(actual))
           i.append(self.lst1.get(actual))
       print h
       print i
       h=string.join(h,"%&%&")
       i=string.join(i,"%&%&")
       print h
       print i
       wh=open("listbox.txt","w")
       wh.writelines(h)
       wh.writelines(i)
       wh.close()

       """
       lista1=list(self.lst.get(0,END))
       lista2=list(self.lst1.get(0,END))
       nindex=len(lista1)
       """
       for i in range(0,nindex):
           if lista1[i]=="":
               lista1[1]="$null$"
           else:
               pass
           if lista2[i]=="":
               lista2[i]="$null$"
           else:
               pass
       """
       lista=[]
       for i in range(0,nindex):
           lista.append(lista1[i]+"%separador%"+lista2[i])
       #print lista

       lista2=string.join(lista,"\n")
       print lista2
       h=open("listbox.txt","w")
       #print lista
       h.writelines(lista2)
       h.close()

Já não sei o que fazer, estou a entrar em parafuso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora