Criando e Abrindo Arquivos ZIP	                Marcel Pinheiro Caraciolo	                  Python	  Aula	  Extra	  1
                     Conhecendo o zipfile		  Python	   tem	   suporte	   para	   abertura	   e	   escrita	   de	   arquivos...
                     Conhecendo o zipfile		  Python	   tem	   suporte	   para	   abertura	   e	   escrita	   de	   arquivos...
                              Abrir Arquivos Zip		  Sempre	  importante	  verificarmos	  se	  o	  arquivo	  corrente	  dese...
Abrir Arquivos Zip		  	  Para	  ler	  quais	  os	  nomes	  de	  arquivos	  existentes	  em	  um	  arquivo	  zip,	  use	  a...
                               Abrir Arquivos Zip		  Ele	   pode	   acessar	   todos	   os	   meta-­‐dados	   de	   um	   ...
                                            Abrir Arquivos Zip		  Ele	   pode	   acessar	   todos	   os	   meta-­‐dados	  ...
                              Abrir Arquivos Zip		  Ele	   pode	   acessar	   todos	   os	   meta-­‐dados	   de	   um	   a...
Abrir Arquivos Zip		  	  Usando	   o	   ge0nfo()	   no	   caso	   quando	   você	   já	   sabe	   o	   nome	   do	  arquiv...
Abrir Arquivos Zip		  	  Usando	   o	   ge0nfo()	   no	   caso	   quando	   você	   já	   sabe	   o	   nome	   do	  arquiv...
Extraindo arquivos de um Zip		  	  Para	  acessar	  o	  conteúdo	  do	  arquivo,	  basta	  u@lizar	  o	  método	  read()	 ...
Extraindo arquivos de um Zip		  	  Podemos	   chamar	   diretamente	   também	   o	   extractall()	   que	   extrai	  todo...
Criando novos arquivos Zip		  	  Para	   criar	   um	   novo	   arquivo,	   basta	   instanciar	   ZipFile	   no	   modo	 ...
Mas se eu quiser adicionar	                     compressão ?		  O	   Módulo	   zlib	   é	   necessário.	   Se	   es@ver	  ...
Mas se eu quiser adicionar	                                 compressão ?		  O	   Módulo	   zlib	   é	   necessário.	   Se	...
Dicas interessantes		  	  Se	   quisermos	   adicionar	   um	   arquivo	   dentro	   de	   um	   arquivo	   zip	   com	  u...
Adicionando arquivos		  	  Adicionar	  novos	  arquivos	  a	  um	  arquivo	  zip	  existente	  basta	  abri-­‐lo	  no	  mo...
Importando módulos de um arquivo zip		  	  Desde	   a	   versão	   2.3,	   Python	   permite	   importar	   módulos	   dir...
Importando módulos de um arquivo zip		  	  Desde	   a	   versão	   2.3,	   Python	   permite	   importar	   módulos	   dir...
Importando módulos de um arquivo zip		  	  Desde	   a	   versão	   2.3,	   Python	   permite	   importar	   módulos	   dir...
Criando e Abrindo Arquivos ZIP	                 Marcel Pinheiro Caraciolo	                   Python	  Aula	  Extra	  21
Upcoming SlideShare
Loading in …5
×

Arquivos Zip com Python - Aula PyCursos

3,251 views
3,038 views

Published on

Aula sobre ZipFiles com Python pelo PyCursos.
Instrutor: Marcel Pinheiro Caraciolo

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,251
On SlideShare
0
From Embeds
0
Number of Embeds
794
Actions
Shares
0
Downloads
57
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Arquivos Zip com Python - Aula PyCursos

  1. 1. Criando e Abrindo Arquivos ZIP Marcel Pinheiro Caraciolo Python  Aula  Extra  1
  2. 2.   Conhecendo o zipfile  Python   tem   suporte   para   abertura   e   escrita   de   arquivos   ZIP.  Através   do   módulo   zipfile   é   possível   comprimir,   adicionar,   ler   ,  escrever  e  até  importar  módulos  a  par@r  de  um  arquivo  ZIP.   >>>  import  zipfile   >>>  zf  =  zipfile.ZipFile(example.zip,  r’)   hKp://docs.python.org/library/zipfile.html   Python  Aula  Extra   2
  3. 3.   Conhecendo o zipfile  Python   tem   suporte   para   abertura   e   escrita   de   arquivos   ZIP.  Através   do   módulo   zipfile   é   possível   comprimir,   adicionar,   ler   ,  escrever  e  até  importar  módulos  a  par@r  de  um  arquivo  ZIP.   >>>  import  zipfile   >>>  zf  =  zipfile.ZipFile(example.zip,  r’)   Simples  não  ?!   hKp://docs.python.org/library/zipfile.html   Python  Aula  Extra   3
  4. 4.   Abrir Arquivos Zip  Sempre  importante  verificarmos  se  o  arquivo  corrente  desejado  se  refere  ou  não  a  um  arquivo  ZIP  válido.      A  função  para  este  caso  é  o  is_zipfile(‘filename’).   >>>  import  zipfile   >>>  zipfile.is_zipfile(“README.txt”)   False   >>>zipfile.is_zipfile(“example.zip”)     True        O    que  ele  verifica  não  é  apenas  se  tem  a  terminação  .zip  e  sim  se     referencia  a  uma  estrutura  válida  de  arquivo  comprimido.   Python  Aula  Extra   4
  5. 5. Abrir Arquivos Zip    Para  ler  quais  os  nomes  de  arquivos  existentes  em  um  arquivo  zip,  use  a  função  namelist():     >>>  import  zipfile   >>>  zf  =  zipfile.ZipFile(‘example.zip’,  ‘r’)   >>>  print  zf.namelist()   [“README.txt”]   Python  Aula  Extra   5
  6. 6.   Abrir Arquivos Zip  Ele   pode   acessar   todos   os   meta-­‐dados   de   um   arquivo   Zip,   por  meio  das  funções  infolist()  ou  ge0nfo().     import  date@me   import  zipfile     def  print_info(archive_name):          zf  =  zipfile.ZipFile(archive_name)          for  info  in  zf.infolist():                  print  info.filename                  print  tComment:t,  info.comment                  print  tModified:t,  date@me.date@me(*info.date_@me)                  print  tSystem:tt,  info.create_system,  (0  =  Windows,  3  =  Unix)                  print  tZIP  version:t,  info.create_version                  print  tCompressed:t,  info.compress_size,  bytes                  print  tUncompressed:t,  info.file_size,  bytes                  print   Python  Aula  Extra   6
  7. 7.   Abrir Arquivos Zip  Ele   pode   acessar   todos   os   meta-­‐dados   de   um   arquivo   Zip,   por  meio  das  funções  infolist()  ou  ge0nfo().     $  python  zipfile_infolist.py     README.txt                  Comment:                  Modified:              2007-­‐12-­‐16  10:08:52                  System:                  3  (0  =  Windows,  3  =  Unix)                  ZIP  version:        23                  Compressed:          63  bytes                  Uncompressed:      75  bytes   Python  Aula  Extra   7
  8. 8.   Abrir Arquivos Zip  Ele   pode   acessar   todos   os   meta-­‐dados   de   um   arquivo   Zip,   por  meio  das  funções  infolist()  ou  ge0nfo().     import  date@me   import  zipfile     def  print_info(archive_name):          zf  =  zipfile.ZipFile(archive_name)   Existem   outras   informações   que          for  info  in  zf.infolist():   podem   ser   obdas   além   das   apresentadas.   Recomendo   a                  print  info.filename   leitura   das   especificações                  print  tComment:t,  info.comment   PKZIP  Applicaon  Note.                  print  tModified:t,  date@me.date@me(*info.date_@me)                  print  tSystem:tt,  info.create_system,  (0  =  Windows,  3  =  Unix)                  print  tZIP  version:t,  info.create_version                  print  tCompressed:t,  info.compress_size,  bytes                  print  tUncompressed:t,  info.file_size,  bytes                  print   Python  Aula  Extra   8
  9. 9. Abrir Arquivos Zip    Usando   o   ge0nfo()   no   caso   quando   você   já   sabe   o   nome   do  arquivo.     >>>  import  zipfile   >>>  zf  =  zipfile.ZipFile(‘example.zip’,  ‘r’)   >>>  info  =  z.ge@nfo(“README.txt”)   >>>  info.filename,  info.file_size   README.txt    75   Python  Aula  Extra   9
  10. 10. Abrir Arquivos Zip    Usando   o   ge0nfo()   no   caso   quando   você   já   sabe   o   nome   do  arquivo.     >>>  import  zipfile   >>>  zf  =  zipfile.ZipFile(‘example.zip’,  ‘r’)   S e   o   a r q u i v o   n ã o   f o r   encontrado   o   ge#nfo()   >>>  info  =  z.ge0nfo(“README.txt”)   retorna   uma   exceção   do   po   >>>  info.filename,  info.file_size   KeyError.   README.txt    75   Python  Aula  Extra   10
  11. 11. Extraindo arquivos de um Zip    Para  acessar  o  conteúdo  do  arquivo,  basta  u@lizar  o  método  read()  passando  como  parâmetro  o  nome  do  arquivo.    >>>  import  zipfile  >>>  zf  =  zipfile.ZipFile(‘example.zip’,  ‘r’)  >>>  data  =  z.read(“README.txt”)  >>>  repr(data)  The  examples  for  the  zipfile  module  use  this  file  and  example.zip  as  data.n          Lembrando  que  o  conteúdo  lido  é  no  formato  de  string,    logo  se  for   arquivos  binários,  ele  retornará  uma  string  de  bytes!   Python  Aula  Extra   11
  12. 12. Extraindo arquivos de um Zip    Podemos   chamar   diretamente   também   o   extractall()   que   extrai  todos  os  arquivos  para  um  diretório  especificado.    >>>  import  zipfile  >>>  zf  =  zipfile.ZipFile(‘example.zip’,  ‘r’)  >>>  zf.extractall()  >>>  f  =  open(‘README.txt’)  >>>  f.read()  The  examples  for  the  zipfile  module  use  this  file  and  example.zip  as  data.n         Você   pode   inclusive   alterar   o   caminho   pela   variável   path   e   tambem   definir  quais  serao  os  arquivos  extraidos  pela  variavel  lista  members.   Python  Aula  Extra   12
  13. 13. Criando novos arquivos Zip    Para   criar   um   novo   arquivo,   basta   instanciar   ZipFile   no   modo  escrita.  Para  adicionar  arquivos,  use  o  método  write()     >>>  import  zipfile   >>>  zf  =  zipfile.ZipFile(‘example.zip’,  ‘w’)   >>>  zf.write(“README.txt”)   >>>  zf.close()     Python  Aula  Extra   13
  14. 14. Mas se eu quiser adicionar   compressão ?  O   Módulo   zlib   é   necessário.   Se   es@ver   disponível   você   pode  configurar     o   modo   de   compressão.   O   padrão   é   o  zpfile.ZIP_STORED     >>>  import  zipfile   >>>  import  zlib   >>>  zf  =  zipfile.ZipFile(‘example.zip’,  ‘w’)   >>>  zf.write(“README.txt”  ,  compress_type  =  zipfile.ZIP_DEFLATED)   >>>  zf.close()     Python  Aula  Extra   14
  15. 15. Mas se eu quiser adicionar   compressão ?  O   Módulo   zlib   é   necessário.   Se   es@ver   disponível   você   pode  configurar     o   modo   de   compressão.   O   padrão   é   o  zpfile.ZIP_STORED     >>>  import  zipfile   Se  déssemos  um  print  em     >>>  zf  =  zipfile.ZipFile(‘example.zip’,  ‘w’)   genfo(‘README.txt’)  obteríamos:   >>>  zf.write(“README.txt”  ,  compress_type  =  zipfile.ZIP_DEFLATED)     README.txt   >>>  zf.close()                  Comment:                    Modified:              2007-­‐12-­‐16  10:08:50                  System:                  3  (0  =  Windows,  3  =  Unix)                  ZIP  version:        20                  Compressed:          63  bytes                  Uncompressed:      75  bytes     Python  Aula  Extra   15
  16. 16. Dicas interessantes    Se   quisermos   adicionar   um   arquivo   dentro   de   um   arquivo   zip   com  um  nome  diferente  do  nome  original  ?       >>>  zf.write(‘README.txt’,  arcname  =  ‘NOT_README.txt’)    Se   quisermos   escrever   dados   que   não   vem   de   um   arquivo.  Simplemente  escrevendo  string  de  bytes  em  um  arquivo  direto  ?     Mensagem  em  string     >>>  zf.writestr(‘from_string.txt’,    ‘vamos  adicionar  direto  de  uma  string’)   Python  Aula  Extra   16
  17. 17. Adicionando arquivos    Adicionar  novos  arquivos  a  um  arquivo  zip  existente  basta  abri-­‐lo  no  modo  append    ‘a’.     >>>  import  zipfile   >>>  zf  =  zipfile.ZipFile(‘example.zip’,  ‘a’)   >>>  zf.write(“exercicio.py”)   >>>  zf.close()     Python  Aula  Extra   17
  18. 18. Importando módulos de um arquivo zip    Desde   a   versão   2.3,   Python   permite   importar   módulos   direto   de    um  arquivo  zip  desde  que  este  esteja  no  sys.path  .         Para  escrita  de  arquivos:     >>>  import  zipfile     >>>  zf  =  zipfile.PyZipFile(‘example.zip’,  mode=‘w’)   >>>  zf.writepy(“.”)   >>>  zf.close()     Python  Aula  Extra   18
  19. 19. Importando módulos de um arquivo zip    Desde   a   versão   2.3,   Python   permite   importar   módulos   direto   de    um  arquivo  zip  desde  que  este  esteja  no  sys.path  .         Para  escrita  de  arquivos:     >>>  import  zipfile     >>>  zf  =  zipfile.PyZipFile(‘example.zip’,  mode=‘w’)   Quando   chamamos   a   função   writepy(),   a   >>>  zf.writepy(“.”)   classe   PyZipFile   procura   no   diretório   passado   como   parâmetro   arquivos   .py   e   >>>  zf.close()   adiciona   os   arquivos   compilados   .pyo     ou  .pyc  dentro  do  arquivo  zip.  Se  estes  não   exisrem  um  .pyc  é  criado  e  adicionado.       Modo  debug>        zf.debug    =3   Python  Aula  Extra   19
  20. 20. Importando módulos de um arquivo zip    Desde   a   versão   2.3,   Python   permite   importar   módulos   direto   de    um  arquivo  zip  desde  que  este  esteja  no  sys.path  .         Para  leitura  de  arquivos:     >>>  import  sys     >>>  sys.path.insert(0,  ‘example.zip’)   >>>  import  example   >>>  example.__file__   example.zip/example.pyc   Python  Aula  Extra   20
  21. 21. Criando e Abrindo Arquivos ZIP Marcel Pinheiro Caraciolo Python  Aula  Extra  21

×