Portuguese, Brazilian subtitles

← Using CSV Module - Data Wranging with MongoDB

Get Embed Code
4 Languages

Showing Revision 10 created 06/20/2016 by Udacity Robot.

  1. Agora vamos recapitular por um minuto e pensar um pouco mais
  2. sobre CSV. Falamos sobre o fato de os campos serem delimitados
  3. por vírgulas. Então, o que acontecerá se tivermos uma campo que
  4. contém uma vírgula, como este aqui? Este álbum específico
  5. dos Beatles foi lançado em duas gravadoras diferentes, uma na Nova Zelândia
  6. e outra nos EUA. Então, da forma como este
  7. conjunto de dados foi configurado, essas duas gravadoras são
  8. simplesmente separadas por vírgula aqui. Agora, com base no que já sabemos sobre CSV, ou
  9. devo dizer sobre o que falamos até agora na
  10. aula sobre CSV, isso causaria um problema para nós
  11. porque nosso analisador interpretaria isto como um separador de campo.
  12. Agora, a forma como o formato CSV processa isso, ou
  13. a forma que a maioria dos aplicativos que lidam como o formato
  14. CSV processam isso, é fazendo algo como o seguinte. Bom,
  15. você pode ver aqui que este é o campo
  16. neste arquivo CSV real. Aqui, o que eu fiz foi simplesmente
  17. carregá-lo em uma planilha do Google, mas este
  18. é um arquivo CSV bruto. E você pode ver que a forma como
  19. isto foi estruturado é para esta linha específica, este
  20. campo foi colocado entre aspas. Certo? Então, o que isso faz
  21. é indicar que você pode ignorar os delimitadores de campo
  22. daqui até aqui. Temos algumas opções em termos do que
  23. usamos para aspas. Você pode usar aspas duplas ou
  24. pode usar aspas simples. Bem, isso causaria um problema
  25. de outras formas. Você pode ver aqui que temos este
  26. caractere de aspas aqui, aspas simples aqui. Também há um aqui, que na
  27. verdade é usado como apóstrofe para Sgt Pepper's Lonely Hearts
  28. Club Band. Seria extremamente entediante se, em nossos
  29. programas Python, tivéssemos de lidar com todas essas
  30. variações diferentes de exceções. E o fato que, embora chamemos
  31. isto de CSV, ou valores separados por vírgulas, você pode usar
  32. qualquer delimitador aqui, contanto que esse caractere
  33. seja usado apenas como um delimitador de campo nas linhas do conjunto de dados.
  34. Então, como geralmente é o caso do
  35. desenvolvimento de software, este problema foi abstraído e resolvido
  36. para todas as variações diferentes, os detalhes entediantes com
  37. os quais podemos lidar para trabalhar com um formato como CSV que
  38. tem tantas variações, e os asteriscos, que meu amigo
  39. Will Cross adora dizer. Este é o módulo Python CSV.
  40. Este módulo lida com formatos CSV de uma forma bem
  41. completa. Então, vamos ver como usamos este módulo. Agora,
  42. o que vou fazer aqui na verdade é usar a classe DictReader
  43. deste módulo. Isto presume que o que queremos fazer
  44. é ler todos os dados dos dicionários, que é
  45. o que estávamos fazendo esse tempo todo e o que continuaremos
  46. a fazer no restante do curso. Mas,
  47. ele também tem outros recursos bem legais. Por exemplo,
  48. ele presume que a primeira linha de qualquer arquivo
  49. que vamos ler seja uma linha de cabeçalho. E esses são os
  50. nomes que queremos usar para os campos. Então, voltando
  51. ao nosso arquivo CSV, se eu for até o
  52. início, poderemos ver que esta primeira linha aqui
  53. tem todos os rótulos de campos que queremos
  54. para as colunas deste conjunto de dados ou para os campos
  55. deste conjunto de dados. O que este leitor de dicionário fará para nós é,
  56. conforme lê as linhas, ele criará um dicionário
  57. para cada linha. Os nomes dos campos serão o que estiver
  58. nessa primeira linha, e ele os relembra conforme lemos
  59. o arquivo de dados. E os valores, por sua vez, serão
  60. cada um dos valores associados em cada linha
  61. do arquivo. E, novamente, ele também lida com coisas como
  62. caracteres de aspas, lidando com campos entre aspas que podem
  63. conter vírgulas e assim por diante. Não precisamos nos preocupar
  64. com isso usando o módulo CSV. Vamos ver o
  65. restante deste código. Essencialmente, estamos apenas
  66. abrindo o arquivo de dados. Vamos instanciar um DictReader do módulo
  67. CSV e depois vamos simplesmente fazer um loop. Cada vez que passarmos
  68. por aqui, essa classe produzirá uma linha para nós. E
  69. essa linha será na verdade um dicionário, composto pelos campos
  70. apropriados para essa linha específica. Depois, quando descermos a tela,
  71. o que vou fazer aqui é simplesmente gerar todos
  72. esses valores, OK? Vamos ver a execução deste
  73. trecho de código. E novamente, lembre-se de que estamos
  74. usando o módulo CSV. OK. Se executarmos isto,
  75. o resultado que obteremos, vou apenas olhar do
  76. segundo ao último aqui, será um dicionário composto
  77. por cada um dos rótulos que saíram da
  78. primeira linha deste arquivo. E o valor de campo
  79. para cada um dos campos desta linha específica do
  80. arquivo de dados. Certo? E isso resolve perfeitamente para
  81. nós os campos que podem estar entre aspas
  82. em uma linha específica, e outras nuances que
  83. podemos ver no formato CSV, e coloca convenientemente tudo em dicionários
  84. individuais para nós. Então, sempre que você for trabalhar com
  85. arquivos CSV no Python, é melhor o módulo CSV,
  86. porque muitos dos desafios de se trabalhar
  87. com esse tipo de dados já foram resolvidos para nós.