Python Open Stdout As Binary Options


Python Files IO Este capítulo aborda todas as funções IO básicas disponíveis no Python. Para mais funções, consulte a documentação padrão do Python. Imprimir na tela A maneira mais simples de produzir saída é usar a declaração de impressão onde você pode passar de zero ou mais expressões separadas por vírgulas. Esta função converte as expressões que você passa para uma seqüência de caracteres e grava o resultado na saída padrão da seguinte forma. Isso produz o seguinte resultado em sua tela padrão, menos Entrada de teclado de leitura. O Python fornece duas funções internas para ler uma linha de texto da entrada padrão, Que por padrão vem do teclado. Essas funções são menos A função rawinput A função rawinput (prompt) lê uma linha da entrada padrão e retorna como uma string (removendo a nova linha). Isso solicita que você insira qualquer string e exibirá a mesma string na tela. Quando eu digitei o Hello Python, a saída é assim menos. A função de entrada A função de entrada (prompt) é equivalente ao rawinput, exceto que assume que a entrada é uma expressão de Python válida e retorna o resultado avaliado para você. Isso produziria o seguinte resultado contra a entrada inserida menos Abrir e fechar arquivos Até agora, você estava lendo e escrevendo para a entrada e saída padrão. Agora, veremos como usar arquivos de dados reais. O Python fornece funções básicas e métodos necessários para manipular arquivos por padrão. Você pode fazer a maior parte da manipulação de arquivos usando um objeto de arquivo. A função aberta Antes de poder ler ou escrever um arquivo, você deve abri-lo usando a função aberta () do Pythons built-in. Esta função cria um objeto de arquivo, que seria utilizado para chamar outros métodos de suporte associados a ele. Aqui estão os detalhes do parâmetro: nome do arquivo: o argumento do nome do arquivo é um valor de seqüência de caracteres que contém o nome do arquivo que deseja acessar. Modo de acesso: o modo de acesso determina o modo em que o arquivo deve ser aberto, ou seja, ler, escrever, anexar, etc. Uma lista completa de valores possíveis é dada abaixo na tabela. Este é o parâmetro opcional eo modo de acesso ao arquivo padrão é lido (r). Buffer: se o valor de buffer for definido como 0, não ocorrerá buffering. Se o valor de buffer for 1, o buffer de linha é executado ao acessar um arquivo. Se você especificar o valor de buffer como um número inteiro superior a 1, a ação de buffer será realizada com o tamanho do buffer indicado. Se negativo, o tamanho do buffer é o padrão do sistema (comportamento padrão). Aqui está uma lista dos diferentes modos de abrir um arquivo, mas Existe um método desacoplado de passagem em um arquivo binário sem sofrer a penalidade de python com stdout unbuffered por toda a duração da execução de um programa (se eu pretender usar apenas cmdline e não Open (. Rb) Parece que - u é a única maneira de ler em um arquivo como dados binários (do cmdline) - u Forçar stdin, stdout e stderr para ser totalmente unbuffered. Em sistemas onde importa, também colocar stdin, stdout E stderr em modo binário. Perguntou 30 de setembro 11 às 6:44 por algum motivo, python tem - u (saída unbuffered que faz as coisas muito lentas), também controla se um arquivo no operador, como test. py, é tratado com o myfile Como entrada binária. Eu encontrei um problema no qual eu tinha que usar esse formato de entrada para uma classe e no processo de análise do arquivo, ele iria ler o equivalente a 39ctrlz39 e matar o aplicativo. Então, minha esperança era que existe uma maneira Para tratar um arquivo como binário, o que diz a Python que tenha um buffer de saída unbuffered PyInTheSky 4 de outubro às 12:02 Você talvez possa evitar o modo de arquivo Pythons, em vez disso, pegar o fileno fora do objeto tipo arquivo sys. stdin e usar os. read () para pegar dados dele. Esse código mudará a entrada padrão ( Apenas) para o modo unbuffered. Usando isso, você não precisará invocar o intérprete com - u. Unix apenas. No entanto, não tenho a certeza quais efeitos colaterais isso pode ter, por exemplo, na função incorporada do rawinput. Seja cuidadoso, mesmo no modo de não bloqueio, se o select lhe disser que o fd está pronto para ler, você ainda precisará pegar OSError e verificar para e. errno os. errno. EAGAIN. Tais erros devem ser ignorados.7. Entrada e saída Existem várias maneiras de apresentar a saída de um programa, os dados podem ser impressos em um formato legível por humanos ou escritos em um arquivo para uso futuro. Este capítulo irá discutir algumas das possibilidades. 7.1. Formatação de saída Fancier Até agora, encontramos duas maneiras de escrever valores: instruções de expressão e a declaração de impressão. (Uma terceira maneira é usar o método write () de objetos de arquivo, o arquivo de saída padrão pode ser referenciado como sys. stdout. Consulte a Referência da Biblioteca para obter mais informações sobre isso.) Muitas vezes, you8217ll quer mais controle sobre a formatação de sua saída do que simplesmente Imprimir valores separados no espaço. Há duas maneiras de formatar sua saída. A primeira maneira é fazer todo o processamento de seqüências de caracteres usando operações de corte e concatenação de seqüências de caracteres, você pode criar qualquer layout que você possa imaginar. Os tipos de seqüência têm alguns métodos que executam operações úteis para preencher strings para uma determinada largura de coluna, que serão discutidos em breve. A segunda maneira é usar o método str. format (). O módulo de string contém uma classe Template que oferece ainda outra maneira de substituir valores em strings. Uma pergunta permanece, é claro: como você converte valores em strings. Por sorte, Python tem maneiras de converter qualquer valor em uma string: passe para as funções repr () ou str (). A função str () destina-se a retornar representações de valores que são bastante legíveis por humanos, enquanto que repr () significa gerar representações que podem ser lidas pelo intérprete (ou forçarão um SyntaxError se não houver sintaxe equivalente). Para objetos que não possuem uma representação particular para consumo humano, str () retornará o mesmo valor que repr (). Muitos valores, como números ou estruturas como listas e dicionários, têm a mesma representação usando qualquer função. As cordas e os números de ponto flutuante, em particular, têm duas representações distintas. Aqui estão duas maneiras de escrever uma tabela de quadrados e cubos: (Note que, no primeiro exemplo, um espaço entre cada coluna foi adicionado pela forma como funciona: sempre adiciona espaços entre seus argumentos.) Este exemplo demonstra o str. rjust () Método de objetos de string, que justifica a direita uma string em um campo de uma determinada largura preenchendo-a com espaços à esquerda. Existem métodos similares str. ljust () e str. center (). Esses métodos não escrevem nada, eles simplesmente retornam uma nova string. Se a string de entrada for muito longa, eles não o truncarão, mas retorná-lo inalterado, isso irá estragar o layout da coluna, mas isso geralmente é melhor do que a alternativa, que seria mentir sobre um valor. (Se você realmente quer truncamento, você sempre pode adicionar uma operação de fatia, como em x. ljust (n): n.) Existe outro método, str. zfill (). Que pads uma corda numérica à esquerda com zeros. Compreende os sinais mais e menos: o uso básico do método str. format () parece assim: os colchetes e os caracteres dentro deles (chamados campos de formato) são substituídos pelos objetos passados ​​para o método str. format (). Um número entre parênteses refere-se à posição do objeto passado no método str. format (). Se argumentos de palavras-chave forem usados ​​no método str. format (), seus valores são referidos usando o nome do argumento. Os argumentos posicionais e de palavras-chave podem ser arbitrariamente combinados: 7.2. Leitura e gravação de arquivos open () retorna um objeto de arquivo e é mais comumente usado com dois argumentos: open (filename, mode). O primeiro argumento é uma string contendo o nome do arquivo. O segundo argumento é outra seqüência contendo alguns caracteres que descrevem a maneira como o arquivo será usado. O modo pode ser r quando o arquivo só será lido, w para apenas escrever (um arquivo existente com o mesmo nome será apagado) e um abre o arquivo para anexar qualquer dado gravado no arquivo é adicionado automaticamente ao final. R abre o arquivo tanto para leitura como para escrita. O argumento do modo é opcional r será assumido se o8282 foi omitido. No Windows, b anexado ao modo abre o arquivo em modo binário, então também existem modos como rb. Wb. E rb. O Python no Windows faz uma distinção entre texto e arquivos binários. Os caracteres de fim de linha em arquivos de texto são automaticamente alterados ligeiramente quando os dados são lidos ou escritos. Esta modificação nas arquivetas nos dados do arquivo está correta para arquivos de texto ASCII, mas o it8217ll corrompe dados binários como esse em arquivos JPEG ou EXE. Tenha muito cuidado ao usar o modo binário ao ler e escrever esses arquivos. No Unix, ele não se machucou para anexar um b ao modo, para que você possa usá-lo de forma independente para todos os arquivos binários. 7.2.1. Métodos de objetos de arquivo O resto dos exemplos nesta seção assumirá que um objeto de arquivo chamado f já foi criado. Para ler o conteúdo de um arquivo8217, chame f. read (tamanho). Que lê uma quantidade de dados e retorna como uma string. O tamanho é um argumento numérico opcional. Quando o tamanho é omitido ou negativo, todo o conteúdo do arquivo será lido e devolvido o seu problema se o arquivo for duas vezes maior do que a memória do seu machine8217s. Caso contrário, a maioria dos bytes de tamanho são lidos e retornados. Se o fim do arquivo foi alcançado, f. read () retornará uma string vazia (quotquot). F. readline () lê uma única linha do arquivo, um caractere de nova linha (n) é deixado no final da seqüência e é omitido somente na última linha do arquivo se o arquivo doesn8217t terminar em uma nova linha. Isso faz com que o valor de retorno seja inequívoco se f. readline () retornar uma string vazia, o final do arquivo foi alcançado, enquanto uma linha em branco é representada por n. Uma string contendo apenas uma única linha nova. Para ler linhas de um arquivo, você pode rolar o objeto de arquivo. Isso é eficiente na memória, rápido e leva ao código simples: se você quiser ler todas as linhas de um arquivo em uma lista, você também pode usar a lista (f) ou f. readlines (). F. write (string) escreve o conteúdo da string no arquivo, retornando None. Para escrever algo diferente de uma string, ele precisa ser convertido primeiro para uma string: f. tell () retorna um número inteiro que dá a posição atual do objeto do arquivo8217s no arquivo, medido em bytes desde o início do arquivo. Para alterar a posição do objeto do arquivo8217s, use f. seek (offset, fromwhat). A posição é calculada a partir da adição de deslocamento para um ponto de referência; o ponto de referência é selecionado pelo argumento do qual é o argumento. A partir do valor de 0 medidas desde o início do arquivo, 1 usa a posição atual do arquivo e 2 usa o final do arquivo como o ponto de referência. Do que pode ser omitido e padrão para 0, usando o início do arquivo como o ponto de referência. Quando you8217re for feito com um arquivo, chame f. close () para fechá-lo e liberar todos os recursos do sistema ocupados pelo arquivo aberto. Depois de chamar f. close (). As tentativas de usar o objeto de arquivo falharão automaticamente. É uma boa prática usar a palavra-chave com quando lidar com objetos de arquivo. Isso tem a vantagem de que o arquivo esteja corretamente fechado após a conclusão do seu conjunto, mesmo que uma exceção seja aumentada no caminho. Também é muito mais curto do que escrever tentativa equivalente - finalmente blocos: Objetos de arquivo têm alguns métodos adicionais, como isatty () e truncate (), que são menos utilizados, consulte a Referência da Biblioteca para um guia completo para objetos de arquivo. 7.2.2. Salvar dados estruturados com json Strings pode ser facilmente gravado e lido a partir de um arquivo. Os números dão um pouco mais de esforço, já que o método read () apenas retorna strings, que terá que ser passado para uma função como int (). Que leva uma string como 123 e retorna seu valor numérico 123. Quando você quer salvar tipos de dados mais complexos, como listas e dicionários aninhados, a análise e serialização à mão torna-se complicada. Em vez de ter usuários constantemente escrevendo e depurando código para salvar tipos de dados complicados em arquivos, o Python permite usar o popular formato de intercâmbio de dados chamado JSON (Notação de Objeto de JavaScript). O módulo padrão chamado json pode levar as hierarquias de dados Python e convertê-las em representações de seqüência, este processo é chamado de serialização. Reconstruir os dados da representação de string é chamado de deserialização. Entre serialização e deserialização, a cadeia que representa o objeto pode ter sido armazenada em um arquivo ou dados, ou enviada por uma conexão de rede para alguma máquina distante. O formato JSON é comumente usado por aplicativos modernos para permitir a troca de dados. Muitos programadores já estão familiarizados com isso, o que o torna uma boa opção para a interoperabilidade. Se você tem um objeto x. Você pode visualizar sua representação de string JSON com uma linha de código simples: Outra variante da função dumps (), chamada dump (). Simplesmente serializa o objeto para um arquivo. Então, se f é um objeto de arquivo aberto para escrever, podemos fazer isso: Para decodificar o objeto novamente, se f for um objeto de arquivo que foi aberto para leitura: Esta técnica de serialização simples pode lidar com listas e dicionários, mas serializando instâncias de classe arbitrárias No JSON requer um pouco de esforço extra. A referência para o módulo json contém uma explicação disso. Pickle - o módulo pickle Ao contrário do JSON. Pickle é um protocolo que permite a serialização de objetos Python arbitrariamente complexos. Como tal, é específico para Python e não pode ser usado para se comunicar com aplicativos escritos em outros idiomas. Também é inseguro por padrão: a deserialização de dados de pickle provenientes de uma fonte não confiável pode executar código arbitrário, se os dados foram criados por um invasor qualificado.1. Linha de comando e ambiente 1.1.1. Opções de interface A interface de interpretação se assemelha à do shell UNIX, mas fornece alguns métodos adicionais de invocação: Quando chamado com entrada padrão conectada a um dispositivo tty, ele solicita comandos e os executa até um EOF (um caractere de fim de arquivo, Você pode produzir isso com Ctrl-D no UNIX ou Ctrl-Z, Enter no Windows) é lido. Quando chamado com um argumento de nome de arquivo ou com um arquivo como entrada padrão, ele lê e executa um script desse arquivo. Quando chamado com um argumento de nome de diretório, ele lê e executa um script apropriadamente chamado desse diretório. Quando chamado com o comando - c. Ele executa a (s) declaração (s) Python fornecida como comando. Aqui, o comando pode conter várias instruções separadas por novas linhas. O espaço em branco principal é significativo nas instruções do Python quando chamado com - m nome do módulo. O módulo dado está localizado no caminho do módulo Python e executado como um script. No modo não interativo, toda a entrada é analisada antes de ser executada. Uma opção de interface encerra a lista de opções consumidas pelo intérprete, todos os argumentos consecutivos acabarão no sys. argv 8211. Observe que o primeiro elemento, subscrito zero (sys. argv0), é uma string que reflete a fonte do programa8217s. Execute o código Python no comando. O comando pode ser uma ou mais instruções separadas por linhas novas, com espaço em branco líder significativo como no código de módulo normal. Se esta opção for dada, o primeiro elemento do sys. argv será quot-cquot e o diretório atual será adicionado ao início do sys. path (permitindo que os módulos desse diretório sejam importados como módulos de nível superior). Procure sys. path para o módulo nomeado e execute seu conteúdo como o módulo principal. Uma vez que o argumento é um nome de módulo, você não deve fornecer uma extensão de arquivo (.py). O nome do módulo deve ser um nome de módulo Python válido, mas a implementação pode nem sempre impor isso (por exemplo, pode permitir que você use um nome que inclua um hífen). Os nomes dos pacotes também são permitidos. Quando um nome de pacote é fornecido em vez de um módulo normal, o intérprete executará ltpkggt. main como o módulo principal. Esse comportamento é deliberadamente semelhante ao tratamento de diretórios e arquivos zip que são passados ​​para o interpretador como o argumento de script. Esta opção não pode ser usada com módulos internos e módulos de extensão escritos em C, pois eles não possuem arquivos do módulo Python. No entanto, ele ainda pode ser usado para módulos pré-compilados, mesmo que o arquivo original não esteja disponível. Se esta opção for dada, o primeiro elemento do sys. argv será o caminho completo para o arquivo do módulo. Tal como acontece com a opção - c, o diretório atual será adicionado ao início do sys. path. Muitos módulos de biblioteca padrão contêm código que é invocado em sua execução como um script. Um exemplo é o módulo timeit: PEP 370 8211 Por diretório de pacotes do site do usuário Desative a importação do site do módulo e as manipulações dependentes do site do sys. path que isso implica. Emita um aviso quando um arquivo de origem mistura abas e espaços para indentação de uma forma que o faz depender do valor de uma guia expressa em espaços. Emita um erro quando a opção é dada duas vezes (-tt). Força stdin, stdout e stderr para ser totalmente unbuffered. Nos sistemas em que isso importa, também coloque stdin, stdout e stderr em modo binário. Observe que há buffer interno em file. readlines () e File Objects (para linha no sys. stdin), que não é influenciado por esta opção. Para contornar isso, você vai querer usar file. readline () dentro de um loop 1: loop. Imprima uma mensagem cada vez que um módulo é inicializado, mostrando o local (nome do arquivo ou módulo interno) do qual é carregado. Quando administrado duas vezes (-vv), imprima uma mensagem para cada arquivo que está marcado para procurar um módulo. Também fornece informações sobre a limpeza do módulo na saída. Veja também PYTHONVERBOSE. Controle de advertência. O mecanismo de aviso Python8217s por padrão imprime mensagens de aviso para sys. stderr. Uma mensagem de aviso típica tem o seguinte formulário: Por padrão, cada aviso é impresso uma vez para cada linha de origem onde ocorre. Esta opção controla a frequência com que os avisos são impressos. Múltiplas opções - W podem ser fornecidas quando um aviso corresponde a mais de uma opção, a ação para a última opção de correspondência é executada. As opções W não válidas são ignoradas (no entanto, uma mensagem de aviso é impressa sobre opções inválidas quando o primeiro aviso é emitido). A partir do Python 2.7, DeprecationWarning e seus descendentes são ignorados por padrão. A opção - Wd pode ser usada para reativá-los. Os avisos também podem ser controlados a partir de um programa Python usando o módulo de avisos. A forma mais simples de argumento é uma das seguintes seqüências de ação (ou uma abreviatura única) por si: ignore Ignore todas as advertências. Default Solicita explicitamente o comportamento padrão (imprime cada aviso uma vez por linha de origem). Tudo Imprimir um aviso sempre que ocorrer (isso pode gerar muitas mensagens se um aviso for disparado repetidamente para a mesma linha de origem, como dentro de um loop). Módulo Imprima cada aviso apenas a primeira vez que ocorre em cada módulo. Uma vez Imprima cada aviso apenas na primeira vez que ocorre no programa. Error Levante uma exceção em vez de imprimir uma mensagem de aviso. A forma completa de argumento é: Aqui, a ação é como explicado acima, mas apenas se aplica a mensagens que correspondem aos campos restantes. Os campos vazios correspondem a todos os valores que arrastam campos vazios podem ser omitidos. O campo de mensagem corresponde ao início da mensagem de aviso impressa. Esta correspondência não é sensível a maiúsculas e minúsculas. O campo de categoria corresponde à categoria de aviso. Este deve ser um nome de classe, a partida testa se a categoria de aviso real da mensagem é uma subclasse da categoria de aviso especificada. O nome completo da classe deve ser dado. O campo do módulo corresponde ao nome do módulo (totalmente qualificado), essa correspondência é sensível a maiúsculas e minúsculas. O campo de linha corresponde ao número da linha, onde zero corresponde a todos os números de linha e, portanto, é equivalente a um número de linha omitido. Avisos 8211 o módulo de avisos PEP 230 8211 Quadro de aviso Ignore a primeira linha da fonte, permitindo o uso de formas não-Unix de cmd. Isso é destinado somente a um truque específico do DOS. Os números de linha nas mensagens de erro serão desligados por um. Avise sobre possíveis incompatibilidades do Python 3.x, emitindo um DeprecationWarning para recursos que são removidos ou alterados de forma significativa no Python 3. Novo na versão 2.6. 1.1.4. Opções que você não deve usar Reservado para uso pela Jython. Transforma todos os literais de string em unicodes globalmente. Não seja tentado a usar esta opção, pois provavelmente irá quebrar o seu mundo. Ele também produz arquivos. pyc com um número mágico diferente do normal. Em vez disso, você pode ativar os literais unicode em uma base por módulo usando: na parte superior do arquivo. Veja o futuro para obter detalhes. Reservado para implementações alternativas do Python para usar para seus próprios fins. 1.2. Variáveis ​​de ambiente Essas variáveis ​​de ambiente influenciam o comportamento de Python8217s, elas são processadas antes das opções de linha de comando além de - E. É costume que os comutadores de linha de comando substituam as variáveis ​​ambientais onde há um conflito. Altere a localização das bibliotecas Python padrão. Por padrão, as bibliotecas são pesquisadas na versão libpython do prefixo e na versão do libexyth com o execprefix. Onde prefix e execprefix são diretórios dependentes da instalação, ambos como padrão para usrlocal. Quando PYTHONHOME está configurado para um único diretório, seu valor substitui prefixo e execprefix. Para especificar valores diferentes para estes, defina PYTHONHOME como prefixo. Execprefix. Aumentar o caminho de pesquisa padrão para arquivos de módulo. O formato é o mesmo que o shell8217s PATH. Um ou mais nomes de diretório separados por os. pathsep (por exemplo, dois pontos em Unix ou ponto e vírgula no Windows). Os diretórios inexistentes são silenciosamente ignorados. Além dos diretórios normais, as entradas individuais de PYTHONPATH podem se referir a arquivos zip contendo módulos Python puros (em fonte ou formulário compilado). Os módulos de extensão não podem ser importados de arquivos zip. O caminho de pesquisa padrão é dependente da instalação, mas geralmente começa com o prefixo libpython version (veja PYTHONHOME acima). É sempre anexado a PYTHONPATH. Um diretório adicional será inserido no caminho de pesquisa na frente de PYTHONPATH como descrito acima em Opções da interface. O caminho de pesquisa pode ser manipulado a partir de um programa Python como a variável sys. path. Se este for o nome de um arquivo legível, os comandos do Python nesse arquivo serão executados antes que o primeiro prompt seja exibido no modo interativo. O arquivo é executado no mesmo espaço de nomes onde os comandos interativos são executados para que os objetos definidos ou importados nele possam ser usados ​​sem qualificação na sessão interativa. Você também pode alterar os prompts sys. ps1 e sys. ps2 neste arquivo. Defina isso como uma seqüência não vazia para fazer com que o módulo de tempo precise datas especificadas como strings para incluir anos de 4 dígitos, caso contrário, os dois dígitos são convertidos de acordo com as regras descritas na documentação do módulo de tempo. Se isso for definido como uma string não vazia, é equivalente a especificar a opção - O. Se configurado para um número inteiro, é equivalente a especificar - O várias vezes. Se isso for definido como uma string não vazia, é equivalente a especificar a opção - d. Se configurado para um número inteiro, é equivalente a especificar - d várias vezes. Se esta for definida como uma string não vazia, é equivalente a especificar a opção - i. Esta variável também pode ser modificada pelo código Python usando os. environ para forçar o modo de inspeção no término do programa. Se isso for definido como uma string não vazia, é equivalente a especificar a opção - u. Se estiver configurado para uma cadeia não vazia, é equivalente a especificar a opção - v. Se configurado para um número inteiro, é equivalente a especificar - v várias vezes. Se isso for definido, o Python ignora o caso em declarações de importação. Isso funciona apenas no Windows, OS X, OS2 e RiscOS. Se estiver configurado, Python won8217t tente escrever arquivos. pyc ou. pyo na importação de módulos de origem. Isso equivale a especificar a opção - B. Novo na versão 2.6. Se essa variável for definida como aleatória. O efeito é o mesmo que especificar a opção - R: um valor aleatório é usado para semear os hashes de str, bytes e objetos datetime. Se PYTHONHASHSEED estiver configurado para um valor inteiro, ele é usado como uma semente fixa para gerar o hash () dos tipos cobertos pela randomização do hash. Seu objetivo é permitir o hash repetitivo, como para auto-testes para o próprio intérprete, ou para permitir que um cluster de processos de python compartilhe valores de hash. O número inteiro deve ser um número decimal na faixa de 0,4294967295. Especificar o valor 0 levará aos mesmos valores de hash como quando a randomização de hash está desabilitada. Novo na versão 2.6.8. Substitui a codificação usada para stdinstdoutstderr, na sintaxe encodingname: wronghandler. A parte de erro é opcional e tem o mesmo significado que em str. encode (). Novo na versão 2.6. PEP 370 8211 Por diretório de pacotes do site do usuário Se esta variável de ambiente estiver configurada, sys. argv0 será configurado para seu valor em vez do valor obtido através do tempo de execução C. Só funciona no Mac OS X. Isso equivale à opção - W. Se configurado para uma seqüência separada por vírgulas, é equivalente a especificar - W várias vezes. Se esta variável de ambiente for especificada especificamente para 0. então é equivalente a chamar implicitamente ssl. httpsverifycertificates () com enableFalse quando ssl é importado pela primeira vez. Consulte a documentação de ssl. httpsverifycertificates () para obter detalhes. Novo na versão 2.7.12. 1.2.1. Variáveis ​​de modo de depuração A configuração dessas variáveis ​​só tem efeito em uma compilação de depuração do Python, ou seja, se Python foi configurado com a opção de compilação --with-pydebug. Se configurado, o Python imprimirá o enraizamento de informações de depuração. Alterado na versão 2.6: anteriormente, essa variável era chamada de THREADDEBUG. Se configurado, o Python irá despejar objetos e contagens de referência ainda vivas depois de desligar o interpretador. Se configurado, o Python imprimirá estatísticas de alocação de memória sempre que uma nova arena de objeto for criada e no desligamento.

Comments