Código exemplo

3 views
Skip to first unread message

Diego Cedrim

unread,
May 12, 2010, 6:48:40 PM5/12/10
to cesmac-lp1-n...@googlegroups.com
Segue o código

--
Diego Cedrim
alunos.py

Luiz Arthur

unread,
May 12, 2010, 9:37:45 PM5/12/10
to Cesmac LP1 Noturno 2010-1
Estou com um problema, professor: defini uma função para carregar
dados, mas se é a primeira vez que rodo o programa e o arquivo a ser
carregado ainda não existe ou está vazio (quando o crio o arquivo), o
shell dá erro.
>  alunos.py
> 1KExibirDownload

Heiner

unread,
May 17, 2010, 7:11:57 AM5/17/10
to Cesmac LP1 Noturno 2010-1
aew parcero, põe pra ele carregar antes de começar o programa tbm!, pq
ai ele cria um arquivo txt

Luiz Arthur

unread,
May 17, 2010, 1:27:46 PM5/17/10
to Cesmac LP1 Noturno 2010-1
Coloquei a função pra carregar os dados no início, mas já entendi que
o erro faz sentido. Não dá pra se carregar algo que não existe. E
mesmo que exista um arquivo vazio, o módulo pickle não valores pra
atribuir as variáveis do programa. Tentei lembrar, e acho que o
professor sempre fez a função de salvar dados antes da de carregar.

E aí, professor, estou correto ou só arranjei uma desculpa pro erro?
hehe

Luiz Arthur

unread,
May 17, 2010, 1:29:02 PM5/17/10
to Cesmac LP1 Noturno 2010-1
Ah, eu rodei o programa sem acrescentar dados para salvar um arquivo
só com as listas vazias. Assim não tenho problemas.

Diego Cedrim

unread,
May 17, 2010, 2:09:37 PM5/17/10
to cesmac-lp1-n...@googlegroups.com, cesmac-lp1-d...@googlegroups.com
É isso mesmo luiz, não lembro se falei isso em sala. Se tentar ler um arquivo vazio ele não vai conseguir converter o conteúdo do mesmo para um objeto python.
 
Faz o seguinte. Tira o código apenas de carregar e roda o programa (deixando o código de salvar), ai o python vai gravar o arquivo. Dai acrescente o código de carregar que da próxima vez que voce rodar vai funcionar.
 
A solução acima é simples, mas é uma, digamos, "burra". A solução ideal seria checar se o arquivo existe antes de carregar, se existir, ótimo: carrega. Se não existir, deixa as suas variáveis sem nada dentro. É como se tivesse iniciando o programa pela primeira vez. Para fazer isso, importe o módulo os. O código de checagem ficaria:
 
import os.path
if( os.path.isfile("nome_do_arquivo") ):
    #carrega o arquivo usando a função que mostrei em sala
 
Qualquer dúvida pode falar.
 
Abs
--
Diego Cedrim

Luiz Arthur

unread,
May 17, 2010, 4:58:29 PM5/17/10
to Cesmac LP1 Noturno 2010-1
Pensei em fazer uma condição, mas acabei esquecendo. Valeu por
facilitar aí.

Abs.

On 17 maio, 15:09, Diego Cedrim <diego.ced...@gmail.com> wrote:
> É isso mesmo luiz, não lembro se falei isso em sala. Se tentar ler um
> arquivo vazio ele não vai conseguir converter o conteúdo do mesmo para um
> objeto python.
>
> Faz o seguinte. Tira o código apenas de carregar e roda o programa (deixando
> o código de salvar), ai o python vai gravar o arquivo. Dai acrescente o
> código de carregar que da próxima vez que voce rodar vai funcionar.
>
> A solução acima é simples, mas é uma, digamos, "burra". A solução ideal
> seria checar se o arquivo existe antes de carregar, se existir, ótimo:
> carrega. Se não existir, deixa as suas variáveis sem nada dentro. É como se
> tivesse iniciando o programa pela primeira vez. Para fazer isso, importe o
> módulo os. O código de checagem ficaria:
>
> import os.path
> if( os.path.isfile("nome_do_arquivo") ):
>     #carrega o arquivo usando a função que mostrei em sala
>
> Qualquer dúvida pode falar.
>
> Abs
>

Heiner

unread,
May 18, 2010, 7:28:54 AM5/18/10
to Cesmac LP1 Noturno 2010-1
aew professor o que significa esse código aew???
f( os.path.isfile("nome_do_arquivo") ):
pq me lembrei se eu salvar antes de abrir cada programa, ele salva uma
lista nova, em branco, apagando assim os usuários cadastrados
anteriormente...

On 17 maio, 15:09, Diego Cedrim <diego.ced...@gmail.com> wrote:
> É isso mesmo luiz, não lembro se falei isso em sala. Se tentar ler um
> arquivo vazio ele não vai conseguir converter o conteúdo do mesmo para um
> objeto python.
>
> Faz o seguinte. Tira o código apenas de carregar e roda o programa (deixando
> o código de salvar), ai o python vai gravar o arquivo. Dai acrescente o
> código de carregar que da próxima vez que voce rodar vai funcionar.
>
> A solução acima é simples, mas é uma, digamos, "burra". A solução ideal
> seria checar se o arquivo existe antes de carregar, se existir, ótimo:
> carrega. Se não existir, deixa as suas variáveis sem nada dentro. É como se
> tivesse iniciando o programa pela primeira vez. Para fazer isso, importe o
> módulo os. O código de checagem ficaria:
>
> import os.path
> if( os.path.isfile("nome_do_arquivo") ):
>     #carrega o arquivo usando a função que mostrei em sala
>
> Qualquer dúvida pode falar.
>
> Abs
>

Heiner

unread,
May 18, 2010, 7:37:16 AM5/18/10
to Cesmac LP1 Noturno 2010-1
onde ponho esse código?
import os.path
if( os.path.isfile("nome_do_arquivo") ):

On 17 maio, 15:09, Diego Cedrim <diego.ced...@gmail.com> wrote:
> É isso mesmo luiz, não lembro se falei isso em sala. Se tentar ler um
> arquivo vazio ele não vai conseguir converter o conteúdo do mesmo para um
> objeto python.
>
> Faz o seguinte. Tira o código apenas de carregar e roda o programa (deixando
> o código de salvar), ai o python vai gravar o arquivo. Dai acrescente o
> código de carregar que da próxima vez que voce rodar vai funcionar.
>
> A solução acima é simples, mas é uma, digamos, "burra". A solução ideal
> seria checar se o arquivo existe antes de carregar, se existir, ótimo:
> carrega. Se não existir, deixa as suas variáveis sem nada dentro. É como se
> tivesse iniciando o programa pela primeira vez. Para fazer isso, importe o
> módulo os. O código de checagem ficaria:
>
> import os.path
> if( os.path.isfile("nome_do_arquivo") ):
>     #carrega o arquivo usando a função que mostrei em sala
>
> Qualquer dúvida pode falar.
>
> Abs
>

Diego Cedrim

unread,
May 18, 2010, 8:58:39 AM5/18/10
to cesmac-lp1-n...@googlegroups.com
Esse código checa se um arquivo com um dado nome existe. Se você quer saber se o arquivo dados.txt existe, no começo do programa coloque import os.path e onde você precisar checar se ele existe (antes de carregar) use o if.

if( os.path.isfile("dados.txt") ):
    #aqui coloque o codigo de carregar o arquivo   
--
Diego Cedrim
Reply all
Reply to author
Forward
0 new messages