csv – Leitura e gravação de arquivo CSV¶

Conteúdo do módulo¶

O csv define as seguintes funções:

csv.reader(csvfile, dialect = “excel”, ** fmtparams ) ¶

Retornar um objeto leitor que irá iterar ao longo das linhas no csvfile.csvfile pode ser qualquer objeto que suporte o protocolo iterador e retornar um astring cada vez que seu método __next__() for chamado – objetos de arquivo e objetos de lista são adequados. Se csvfile for um objeto de arquivo, ele deve ser aberto com newline="". 1 Um parâmetro optionaldialect pode ser fornecido, o qual é usado para definir um conjunto de parâmetros específicos para um dialeto CSV particular. Pode ser uma instância de uma subclasse da classe Dialect ou uma das strings retornadas pela função list_dialects(). Os outros argumentos opcionais da palavra-chave fmtparams podem ser fornecidos para substituir os parâmetros de formatação individuais no dialeto atual. Para obter detalhes completos sobre o dialeto e os parâmetros de formatação, consulte a seção Dialetos e parâmetros de formatação.

Cada linha lida do arquivo csv é retornada como uma lista de strings. Nenhuma conversão automática de tipo de dados é realizada, a menos que a QUOTE_NONNUMERIC formatação seja especificada (nesse caso, os campos sem aspas são transformados em flutuantes).

Um breve exemplo de uso:

csv.writer(csvfile, dialect = “excel”, ** fmtparams) ¶

Retorne um objeto escritor responsável por converter o dados do usuário em strings delimitadas no objeto semelhante a um arquivo. csvfile pode ser qualquer objeto com um método write(). Se csvfile é um objeto de arquivo, ele deve ser aberto com newline="" 1. Um parâmetro dialeto opcional pode ser fornecido, o qual é usado para definir um conjunto de parâmetros específicos para um dialeto CSV particular. Pode ser uma instância de uma subclasse da classe Dialect ou uma das strings retornadas pela função list_dialects(). Os outros argumentos opcionais da palavra-chave fmtparams podem ser fornecidos para substituir os parâmetros de formatação individuais no dialeto atual. Para obter detalhes completos sobre o dialeto e os parâmetros de formatação, consulte a seção Dialetos e parâmetros de formatação. Para tornar o mais fácil possível a interface com os módulos que implementam a API do banco de dados, o valor None é escrito como uma string vazia. Embora essa não seja uma transformação reversível, é mais fácil despejar valores de dados SQL NULL em arquivos CSV sem pré-processar os dados retornados de uma cursor.fetch* chamada. Todos os outros dados não string são sequenciados com str() antes de ser escrito.

Um breve exemplo de uso:

csv.register_dialect(nome]) ¶

Associe dialeto ao nome. o nome deve ser uma string. O dialeto pode ser especificado passando uma subclasse de Dialect ou por argumentos de palavra-chave fmtparams, ou ambos, com argumentos de palavra-chave substituindo os parâmetros do dialeto. Para obter detalhes completos sobre o dialeto e os parâmetros de formatação, consulte a seção Dialetos e parâmetros de formatação.

csv.unregister_dialect(nome) ¶

Exclua o dialeto associado ao nome do registro de dialeto. Um Error é gerado se o nome não for um nome de dialeto registrado.

csv.get_dialect(nome) ¶

Retorna o dialeto associado ao nome. Um Error é gerado ifname não é um nome de dialeto registrado. Esta função retorna um Dialect imutável.

csv.list_dialects() ¶

Retorna os nomes de todos os dialetos registrados.

csv.field_size_limit() ¶

Retorna o tamanho máximo do campo atual permitido pelo analisador. Se new_limit for dado, ele se tornará o novo limite.

O módulo csv define as seguintes classes:

classcsv.DictReader(f, fieldnames = None, restkey = None, restval = None, dialect = “excel”, * args, ** kwds) ¶

Crie um objeto que opera como um leitor regular, mas mapeia as informações em cada linha para um dict cujas chaves são fornecidas pelo parâmetro fieldnames opcional.

O parâmetro fieldnames é uma sequência. Se nomes de campos forem omitidos, os valores na primeira linha do arquivo f serão usados como nomes de campos. Independentemente de como os nomes dos campos são determinados, o dicionário preserva sua ordem original.

Se uma linha tiver mais campos do que os nomes dos campos, os dados restantes são colocados em uma lista e armazenados com o nome do campo especificado por restkey (cujo padrão é None). Se uma linha não em branco tiver menos campos do que nomes de campos, os valores em falta são preenchidos com o valor de restval (cujo padrão é None).

Todos os outros argumentos opcionais ou de palavra-chave são passados para a instância reader subjacente.

Alterado na versão 3.6: as linhas retornadas são agora do tipo OrderedDict.

Alterado na versão 3.8: as linhas retornadas agora são do tipo dict.

Um breve exemplo de uso:

classcsv.DictWriter( f, fieldnames, restval = “”, extrasaction = “raise”, dialect = “excel”, * args, ** kwds) ¶

Crie um objeto que opere como um escritor regular, mas mapeia dicionários para linhas de saída. O parâmetro fieldnames é uma sequence de chaves que identificam a ordem em que os valores no dicionário passado para o método writerow() são gravados em filef. O parâmetro opcional restval especifica o valor a ser escrito se o dicionário não tiver uma chave nos nomes dos campos. Se o dicionário passado para o método writerow() contiver uma chave não encontrada dentro dos nomes dos campos, o parâmetro opcional de ação extra indicará qual ação totake. Se estiver definido como "raise", o valor padrão, um ValueError é gerado. Se for definido como "ignore", os valores extras no dicionário são ignorados. Qualquer outro argumentos opcionais ou de palavra-chave são passados para a instância writer subjacente.

Observe que, ao contrário da classe DictReader, os nomes dos campos parâmetro da DictWriter classe não é opcional.

Um breve exemplo de uso:

classcsv.Dialect

A classe Dialect é uma classe de contêiner baseada principalmente para seus atributos, que são usados para definir os parâmetros de um reader ou writer instância.

classcsv.excel

A classe excel define as propriedades usuais de um arquivo CSV gerado pelo Excel. Está registrado com o nome de dialeto "excel".

classcsv.excel_tab

A classe excel_tab define as propriedades usuais de um arquivo delimitado por TAB gerado pelo Excel. É registrado com o nome de dialeto "excel-tab".

classcsv.unix_dialect

A classe unix_dialect define as propriedades usuais de um arquivo CSV gerado em sistemas UNIX, ou seja, usando "\n" como terminador de linha e citando todos os campos. É registrado com o nome de dialeto "unix".

Novo na versão 3.2.

classecsv.Sniffer

A classe Sniffer é usada para deduzir o formato de um arquivo CSV.

A classe Sniffer fornece dois métodos:

sniff(amostra, delimitadores = Nenhum) ¶

Analisar a amostra fornecida e retornar uma subclasse Dialect refletindo os parâmetros encontrados. Se o parâmetro delimitadores opcionais for fornecido, ele será interpretado como uma string contendo possíveis caracteres validdelimiter.

has_header(amostra) ¶

Analise o texto de amostra (presume-se que esteja em Formato CSV) e retorne True se a primeira linha parecer uma série de cabeçalhos de coluna.

Um exemplo para Sniffer use:

O módulo csv define as seguintes constantes:

csv.QUOTE_ALL

Instrui writer objetos a citar todos os campos.

csv.QUOTE_MINIMAL

Instrui os objetos writer a citar apenas os campos que contenham caracteres especiais, como delimitador, cota ou qualquer um dos caracteres no determinador de linha.

csv.QUOTE_NONNUMERIC

Instrui writer objetos a citar todos os campos não numéricos .

Instrui o leitor a convocar ertifique todos os campos não citados para digitar float.

csv.QUOTE_NONE

Instrui writer objetos para nunca citar campos. Quando o delimitador atual ocorre nos dados de saída, ele é precedido pelo caractere de escape atual. Se escapechar não estiver definido, o gravador irá gerar Error se quaisquer caracteres que requerem escape forem encontrados.

Instruções reader para não realizar nenhum processamento especial de caracteres de aspas.

O módulo csv define a seguinte exceção:

exceptioncsv.Error

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *