arquivos e programas

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

arquivos e programas

Zhu Sha Zang
Senhores, duas dúvidas:

1) Preciso ler dois arquivos e jogá-los para dentro de uma lista. Usei
algo como:
/
users = open("arquivo","r")

i = users.readlines()/

Como faço para que ele termine de ler o conteudo de cada linha do
arquivo antes do caractere '\n'?
Pesquisando, vi que preciso usar o split(), mas não entendi em que
momento tenho que usá-lo.

Fiz assim para exibir o conteúdo:

/for k in range(0,len(i))
     print(i[k])

/Mas sempre pula uma linha na exibição.

2) Como executar comandos do sistema dentro de um programa python. Com e
sem argumento.
Fazer um simples /ls /ou /ls -l/ ou /ls -la /home?

/Obrigado por qualquer ajuda.

--

---
Zhu Sha Zang



[As partes desta mensagem que não continham texto foram removidas]

Reply | Threaded
Open this post in threaded view
|

Re: arquivos e programas

Luciano Rodrigues da Silva
2011/7/22 Zhu Sha Zang <[hidden email]>

> Senhores, duas dúvidas:
>
> 1) Preciso ler dois arquivos e jogá-los para dentro de uma lista. Usei
> algo como:
> /
> users = open("arquivo","r")
>
> i = users.readlines()/
>
> Como faço para que ele termine de ler o conteudo de cada linha do
> arquivo antes do caractere '\n'?
> Pesquisando, vi que preciso usar o split(), mas não entendi em que
> momento tenho que usá-lo.
>
> Fiz assim para exibir o conteúdo:
>
> /for k in range(0,len(i))
>     print(i[k])
>
>
for line in open('arquivo', r):
    print line.strip() # <--- o strip vai retirar o \n


> /Mas sempre pula uma linha na exibição.
>
> 2) Como executar comandos do sistema dentro de um programa python. Com e
> sem argumento.
> Fazer um simples /ls /ou /ls -l/ ou /ls -la /home?
>
> /Obrigado por qualquer ajuda.
>
> --
>


http://motanet.com.br/python/python-subprocess/

>
> ---
> Zhu Sha Zang
>
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------------------------------
>
> Python-Brasil
> http://www.python.org.br/wiki/AntesDePerguntar
> Links do Yahoo! Grupos
>
>
>


--
Até,

Luciano

<quote>
"Na prática, a teoria é outra!"
</quote>

:wq!


[As partes desta mensagem que não continham texto foram removidas]

Reply | Threaded
Open this post in threaded view
|

Re: arquivos e programas

Clemente Junior-2
In reply to this post by Zhu Sha Zang
Olá Zhu Sha Zang,

segue as linhas que servirão bem para o que você precisa

import os #módulo necessário para a execução de comandos do systema
dentro do python.

arq = open("arquivo_nome", "r")
linhas = [linha.strip() for linha in arq.readlines()] #aqui ficará
armazenado as linhas do arquivo sem o "\n".

os.system("ls") #executa o comando e imprime sua saída. Se usar
os.system("ls") imprimirá na tela a saída de ls.

até mais,

Clemente Junior

/"Para trilhar o caminho: olhe para o mestre,
siga o mestre, ande com o mestre,
olhe através do mestre, torne-se o mestre."/

Em 22-07-2011 08:58, Zhu Sha Zang escreveu:

>
> Senhores, duas dúvidas:
>
> 1) Preciso ler dois arquivos e jogá-los para dentro de uma lista. Usei
> algo como:
> /
> users = open("arquivo","r")
>
> i = users.readlines()/
>
> Como faço para que ele termine de ler o conteudo de cada linha do
> arquivo antes do caractere '\n'?
> Pesquisando, vi que preciso usar o split(), mas não entendi em que
> momento tenho que usá-lo.
>
> Fiz assim para exibir o conteúdo:
>
> /for k in range(0,len(i))
> print(i[k])
>
> /Mas sempre pula uma linha na exibição.
>
> 2) Como executar comandos do sistema dentro de um programa python. Com e
> sem argumento.
> Fazer um simples /ls /ou /ls -l/ ou /ls -la /home?
>
> /Obrigado por qualquer ajuda.
>
> --
>
> ---
> Zhu Sha Zang
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>


[As partes desta mensagem que não continham texto foram removidas]

Reply | Threaded
Open this post in threaded view
|

Re: arquivos e programas

Rafael Santos-5
In reply to this post by Luciano Rodrigues da Silva
Para executar comandos utilize o módulo subprocess

um exemplo :

>>> import subprocess
>>> subprocess.Popen(["ls -lah"], shell=True)

drwxr-xr-x. 61 drael drael 4,0K Jul 22 10:17 .
drwxr-xr-x.  5 root  root  4,0K Abr 19  2010 ..
drwx------.  3 drael drael 4,0K Jan  2  2011 .adobe
drwxr-xr-x.  3 drael drael 4,0K Jul 21 12:02 Área de Trabalho
-rw-------.  1 drael drael  18K Jul 22 10:21 .bash_history
-rw-r--r--.  1 drael drael  177 Mar 17 21:13 .bash_profile
-rw-r--r--.  1 drael drael  125 Mar 19 00:37 .bashrc

aconselho a leitura da documentação oficial para verificar como pegar a
saída do comando e manipular da forma que desejar

http://docs.python.org/library/subprocess.html#module-subprocess

Em 22 de julho de 2011 09:04, Luciano Rodrigues da Silva <
[hidden email]> escreveu:

> **
>
>
> 2011/7/22 Zhu Sha Zang <[hidden email]>
>
> > Senhores, duas dúvidas:
> >
> > 1) Preciso ler dois arquivos e jogá-los para dentro de uma lista. Usei
> > algo como:
> > /
> > users = open("arquivo","r")
> >
> > i = users.readlines()/
> >
> > Como faço para que ele termine de ler o conteudo de cada linha do
> > arquivo antes do caractere '\n'?
> > Pesquisando, vi que preciso usar o split(), mas não entendi em que
> > momento tenho que usá-lo.
> >
> > Fiz assim para exibir o conteúdo:
> >
> > /for k in range(0,len(i))
> > print(i[k])
> >
> >
> for line in open('arquivo', r):
> print line.strip() # <--- o strip vai retirar o \n
>
>
> > /Mas sempre pula uma linha na exibição.
> >
> > 2) Como executar comandos do sistema dentro de um programa python. Com e
> > sem argumento.
> > Fazer um simples /ls /ou /ls -l/ ou /ls -la /home?
> >
> > /Obrigado por qualquer ajuda.
> >
> > --
> >
>
> http://motanet.com.br/python/python-subprocess/
>
>
> >
> > ---
> > Zhu Sha Zang
> >
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
> > ------------------------------------
>
> >
> > Python-Brasil
> > http://www.python.org.br/wiki/AntesDePerguntar
> > Links do Yahoo! Grupos
> >
> >
> >
>
> --
> Até,
>
> Luciano
>
> <quote>
> "Na prática, a teoria é outra!"
> </quote>
>
> :wq!
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



--
Rafael Santos

Arquitetura Linux


[As partes desta mensagem que não continham texto foram removidas]



------------------------------------

Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/python-brasil/

<*> Para sair deste grupo, envie um e-mail para:
    [hidden email]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Reply | Threaded
Open this post in threaded view
|

Re: arquivos e programas

Zhu Sha Zang
Quanto ao '\n' ficou assim:

for k in range(0,r):
   print(i[k].strip(),j[k].strip())

Vou ler essa doc do /subprocess.

/Muito obrigado pela ajuda.

Att

Em 22-07-2011 10:28, Rafael Santos escreveu:

> Para executar comandos utilize o módulo subprocess
>
> um exemplo :
>
>>>> import subprocess
>>>> subprocess.Popen(["ls -lah"], shell=True)
> drwxr-xr-x. 61 drael drael 4,0K Jul 22 10:17 .
> drwxr-xr-x.  5 root  root  4,0K Abr 19  2010 ..
> drwx------.  3 drael drael 4,0K Jan  2  2011 .adobe
> drwxr-xr-x.  3 drael drael 4,0K Jul 21 12:02 Área de Trabalho
> -rw-------.  1 drael drael  18K Jul 22 10:21 .bash_history
> -rw-r--r--.  1 drael drael  177 Mar 17 21:13 .bash_profile
> -rw-r--r--.  1 drael drael  125 Mar 19 00:37 .bashrc
>
> aconselho a leitura da documentação oficial para verificar como pegar a
> saída do comando e manipular da forma que desejar
>
> http://docs.python.org/library/subprocess.html#module-subprocess
>
> Em 22 de julho de 2011 09:04, Luciano Rodrigues da Silva<
> [hidden email]>  escreveu:
>
>> **
>>
>>
>> 2011/7/22 Zhu Sha Zang<[hidden email]>
>>
>>> Senhores, duas dúvidas:
>>>
>>> 1) Preciso ler dois arquivos e jogá-los para dentro de uma lista. Usei
>>> algo como:
>>> /
>>> users = open("arquivo","r")
>>>
>>> i = users.readlines()/
>>>
>>> Como faço para que ele termine de ler o conteudo de cada linha do
>>> arquivo antes do caractere '\n'?
>>> Pesquisando, vi que preciso usar o split(), mas não entendi em que
>>> momento tenho que usá-lo.
>>>
>>> Fiz assim para exibir o conteúdo:
>>>
>>> /for k in range(0,len(i))
>>> print(i[k])
>>>
>>>
>> for line in open('arquivo', r):
>> print line.strip() #<--- o strip vai retirar o \n
>>
>>
>>> /Mas sempre pula uma linha na exibição.
>>>
>>> 2) Como executar comandos do sistema dentro de um programa python. Com e
>>> sem argumento.
>>> Fazer um simples /ls /ou /ls -l/ ou /ls -la /home?
>>>
>>> /Obrigado por qualquer ajuda.
>>>
>>> --
>>>
>> http://motanet.com.br/python/python-subprocess/
>>
>>
>>> ---
>>> Zhu Sha Zang
>>>
>>>
>>>
>>> [As partes desta mensagem que não continham texto foram removidas]
>>>
>>>
>>>
>>> ------------------------------------
>>> Python-Brasil
>>> http://www.python.org.br/wiki/AntesDePerguntar
>>> Links do Yahoo! Grupos
>>>
>>>
>>>
>> --
>> Até,
>>
>> Luciano
>>
>> <quote>
>> "Na prática, a teoria é outra!"
>> </quote>
>>
>> :wq!
>>
>>
>> [As partes desta mensagem que não continham texto foram removidas]
>>
>>
>>
>
>


--

---
Zhu Sha Zang



[As partes desta mensagem que não continham texto foram removidas]

Reply | Threaded
Open this post in threaded view
|

Re: arquivos e programas

Alberto Freire
In reply to this post by Rafael Santos-5
Qual seria a diferença entre o 'os' e 'subprocess'?

Geralmente uso o import os, dai ficaria como o amigo comentou:
os.system('ls')


Grato!


Em 22-07-2011 10:28, Rafael Santos escreveu:

> Para executar comandos utilize o módulo subprocess
>
> um exemplo :
>
>>>> import subprocess
>>>> subprocess.Popen(["ls -lah"], shell=True)
> drwxr-xr-x. 61 drael drael 4,0K Jul 22 10:17 .
> drwxr-xr-x.  5 root  root  4,0K Abr 19  2010 ..
> drwx------.  3 drael drael 4,0K Jan  2  2011 .adobe
> drwxr-xr-x.  3 drael drael 4,0K Jul 21 12:02 Área de Trabalho
> -rw-------.  1 drael drael  18K Jul 22 10:21 .bash_history
> -rw-r--r--.  1 drael drael  177 Mar 17 21:13 .bash_profile
> -rw-r--r--.  1 drael drael  125 Mar 19 00:37 .bashrc
>
> aconselho a leitura da documentação oficial para verificar como pegar a
> saída do comando e manipular da forma que desejar
>
> http://docs.python.org/library/subprocess.html#module-subprocess
>
> Em 22 de julho de 2011 09:04, Luciano Rodrigues da Silva<
> [hidden email]>  escreveu:
>
>> **
>>
>>
>> 2011/7/22 Zhu Sha Zang<[hidden email]>
>>
>>> Senhores, duas dúvidas:
>>>
>>> 1) Preciso ler dois arquivos e jogá-los para dentro de uma lista. Usei
>>> algo como:
>>> /
>>> users = open("arquivo","r")
>>>
>>> i = users.readlines()/
>>>
>>> Como faço para que ele termine de ler o conteudo de cada linha do
>>> arquivo antes do caractere '\n'?
>>> Pesquisando, vi que preciso usar o split(), mas não entendi em que
>>> momento tenho que usá-lo.
>>>
>>> Fiz assim para exibir o conteúdo:
>>>
>>> /for k in range(0,len(i))
>>> print(i[k])
>>>
>>>
>> for line in open('arquivo', r):
>> print line.strip() #<--- o strip vai retirar o \n
>>
>>
>>> /Mas sempre pula uma linha na exibição.
>>>
>>> 2) Como executar comandos do sistema dentro de um programa python. Com e
>>> sem argumento.
>>> Fazer um simples /ls /ou /ls -l/ ou /ls -la /home?
>>>
>>> /Obrigado por qualquer ajuda.
>>>
>>> --
>>>
>> http://motanet.com.br/python/python-subprocess/
>>
>>
>>> ---
>>> Zhu Sha Zang
>>>
>>>
>>>
>>> [As partes desta mensagem que não continham texto foram removidas]
>>>
>>>
>>>
>>> ------------------------------------
>>> Python-Brasil
>>> http://www.python.org.br/wiki/AntesDePerguntar
>>> Links do Yahoo! Grupos
>>>
>>>
>>>
>> --
>> Até,
>>
>> Luciano
>>
>> <quote>
>> "Na prática, a teoria é outra!"
>> </quote>
>>
>> :wq!
>>
>>
>> [As partes desta mensagem que não continham texto foram removidas]
>>
>>
>>
>
>

--
Alberto Freire de Melo
Administrador de TI
HTnet Online - Soluções de acesso à internet!
e-mail: albertofreire @ yahoo.com.br
msn: [hidden email]
skype: suportht
fones: (87)8838-3936 / 3873-2048 ramal 222



[As partes desta mensagem que não continham texto foram removidas]

Reply | Threaded
Open this post in threaded view
|

Re: arquivos e programas

Luciano Ramalho
In reply to this post by Rafael Santos-5
2011/7/22 Rafael Santos <[hidden email]>:

> Para executar comandos utilize o módulo subprocess
>
> um exemplo :
>
>>>> import subprocess
>>>> subprocess.Popen(["ls -lah"], shell=True)
>
> drwxr-xr-x. 61 drael drael 4,0K Jul 22 10:17 .
> drwxr-xr-x.  5 root  root  4,0K Abr 19  2010 ..
> drwx------.  3 drael drael 4,0K Jan  2  2011 .adobe
> drwxr-xr-x.  3 drael drael 4,0K Jul 21 12:02 Área de Trabalho
> -rw-------.  1 drael drael  18K Jul 22 10:21 .bash_history
> -rw-r--r--.  1 drael drael  177 Mar 17 21:13 .bash_profile
> -rw-r--r--.  1 drael drael  125 Mar 19 00:37 .bashrc

A dica do Rafael está correta, mas para 97.9% das operações do tipo
"Fazer um simples /ls /ou /ls -l/ ou /ls -la /home?" eu considero
MUITO melhor e mais fácil usar funções dos módulos glob, os ou
os.path, que devolvem dados muito mais fáceis de trabalhar.

Por exemplo, para saber quais os arquivos de um diretório:

>>> from glob import glob
>>> glob('*')
['basicos', 'config.py', 'encoding', 'exec', 'execucao.py',
'execucao_import.py', 'execucao_pergunta.py',
'execucao_pergunta_import.py', 'exercicios', 'fail.py', 'float',
'funcional', 'group.py', 'group_dict.py', 'iching.py',
'import_cond.py', 'iteraveis', 'kofu', 'kw_builtins', 'leia-me.txt',
'membros.py', 'metaprog', 'modulos', 'multiproc.py', 'namespace.py',
'oo', 'ordenacao', 'paises', 'param_mutavel.py', 'pi.py', 'picirc.py',
'picirc2.py', 'picirc3.py', 'placas.py', 'placas.rb', 'proc_imagens',
'properties', 'recursao', 'rede', 'slides', 'somar.py', 'somar2.py',
'strings', 'testing', 'tipos', 'unittest']
>>> glob('/*')
['/Applications', '/bin', '/cores', '/dev', '/Developer', '/etc',
'/home', '/Library', '/mach_kernel', '/net', '/Network', '/private',
'/sbin', '/System', '/tmp', '/Users', '/usr', '/var', '/Volumes']
>>>

Em geral só se justifica usar o módulo subprocess para executar
programas externos cuja funcionalidade não faz parte nativa das APIs
do Python. Para a grande maioria dos comandos de shell, por exemplo,
não se justifica.


--
Luciano Ramalho
programador repentista || stand-up programmer
Twitter: @luciano
Reply | Threaded
Open this post in threaded view
|

Re: arquivos e programas

Luciano Ramalho
> ...para 97.9% das operações do tipo
> "Fazer um simples /ls /ou /ls -l/ ou /ls -la /home?" eu considero
> MUITO melhor e mais fácil usar funções dos módulos glob, os ou
> os.path, que devolvem dados muito mais fáceis de trabalhar.

Completando, para obter mais infos sobre os arquivos (do tipo que um
ls -la mostra), usa-se o os.stat assim:

>>> from glob import glob
>>> from os import stat
>>> for path in glob('*'):
...   print path, stat(path)
...
basicos posix.stat_result(st_mode=16877, st_ino=809742,
st_dev=234881026L, st_nlink=20, st_uid=501, st_gid=20, st_size=680,
st_atime=1310306773, st_mtime=1304302725, st_ctime=1304302725)
config.py posix.stat_result(st_mode=33188, st_ino=809761,
st_dev=234881026L, st_nlink=1, st_uid=501, st_gid=20, st_size=46,
st_atime=1304302725, st_mtime=1304302725, st_ctime=1304302725)
encoding posix.stat_result(st_mode=16877, st_ino=809762,
st_dev=234881026L, st_nlink=22, st_uid=501, st_gid=20, st_size=748,
st_atime=1310306773, st_mtime=1304302725, st_ctime=1304302725)

Por exemplo, para uma listagem com tamanhos e nomes de arquivos:

>>> for path in glob('*'):
...   print '{1.st_size:4d} {0}'.format(path, stat(path))
...
 680 basicos
  46 config.py
 748 encoding
 136 exec
1103 execucao.py
  57 execucao_import.py
1435 execucao_pergunta.py



--
Luciano Ramalho
programador repentista || stand-up programmer
Twitter: @luciano