0

我正在尝试编写一个简单的 python 脚本来获取一些数据并写入一些文件。(来源是使用 urllib2 的 curl)。

我的脚本:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os, sys
import urllib2

pid = str(os.getpid())
pidfile = "/tmp/requisicoes.pid"

if os.path.isfile(pidfile):
    print "%s Coleta de requisições já esta rodando." % pidfile
    sys.exit()
else:
    file(pidfile, 'w').write(pid)

url = 'https://*******/quest_history.pl?GRAFICO=Grupo+Resolvedor&FORMATPERIOD=dia&PERIODO=last_year&REFGRAFICO=Termino&REFMETRICA=qtde&TABELA=0&FORMAT=csv&Numero=Tudo&Subcategoria=Tudo&Produto=Tudo&Grupo+Resolvedor=Tudo&Resolvedor=Tudo&Solicitante=Tudo&Unidade+Negocio=Tudo&Customer=Tudo&Origem=Tudo&Data+fechamento=Tudo&Data+abertura=Tudo&Rejeicoes=Tudo&Data+Abertura=Tudo&Data+Termino=Tudo&Data+Abertura+Call=Tudo&Call=Tudo&Tempo+de+Fila=Tudo&Tempo+de+Resolucao=Tudo&Rejeitado=Tudo&Tempo+de+Rejeicao=Tudo&Tempo+de+Abertura=Tudo&Categorizacao=Tudo&Site=Tudo&Grupo+de+Origem=Tudo&Cliente=Tudo&CNPJ=Tudo&Grupo+de+Clientes=Tudo&Tempo+para+resolucao=Tudo&Tempo+para+fechamento=Tudo&Tecnologia=Tudo&Papel+desempenhado=Tudo&Tempo+de+Resolucao+em+dias=Tudo'

curlreq = urllib2.urlopen(url)

curlresult = curlreq.read()

anocsv = open('/tmp/csvano.csv', 'wb')

anocsv.write(curlresult)

anocsv.close()

os.unlink(pidfile)

我的脚本返回文件 /tmp/csvano.csv

Numero;Subcategoria;Produto;Grupo Resolvedor;Resolvedor;Solicitante;Unidade Negocio;Customer;Origem;Data fechamento;Data abertura;Rejeicoes;Data Abertura;Data Termino;Data Abertura Call;Call;T      empo de Fila;Tempo de Resolucao;Rejeitado;Tempo de Rejeicao;Tempo de Abertura;Categorizacao;Site;Grupo de Origem;Cliente;CNPJ;Grupo de Clientes;Tempo para resolucao;Tempo para fechamento;Tecno      logia;Papel desempenhado;Tempo de Resolucao em dias;                                                                                                                                            
Q***;ouvidoria;dbi [tecnologia - falha tecnica operacao];ouvidoria;****;*** LTDA;***;***;Diretamente pelo       solicitante;17/07/2013 10:38:54 ;11/07/2013 16:31:38 ;;11/07/2013 16:31:38 ;17/07/2013 10:38:54 ;11/07/2013 16:31:37;CALL2259914;138.12;138.12;Nao;;0.00;ouvidoria/dbi [tecnologia - falha tecn      ica operacao];unknown;;***;09.468.079/0001-54;Outros clientes;de 5 a 6 dias;0;Nao;Areas externas a tecnologia;3;
Q***;hosting;usuario [criacao];n1-operacao;****;SERVICE;*****;***;via Service Desk;15/01/2013 17:18:39 ;15/01/2013 08:55:35 ;;15/01/2013 08:      55:35 ;15/01/2013 17:18:39 ;15/01/2013 08:54:00;CALL1914127;8.38;8.38;Nao;;0.03;hosting/usuario [criacao];unknown;;***;09.296.295/0001-60;Clientes Premium;de 8       a 9 horas;81.66;Nao;Areas externas a tecnologia;1;
Q***;email;folha - contato [alteracao];ti;****;****;****;***;via Service Desk;01/03/2013 18:12:41 ;01/03/2013 17:07:40 ;;01/03/2013 17:07:40 ;01/      03/2013 18:12:41 ;01/03/2013 17:07:39;CALL2000649;1.08;1.08;Nao;;0.00;email/folha - contato [alteracao];unknown;;***;;***;de 1 a 2 horas;0;Nao;Areas externas a tecnologia;1;

但我用这个编码得到了一些输出,Janu<el>rio, Jo<c3>o我需要解决这个问题..

任何想法?

4

1 回答 1

0

最后我找到了一些解决我的问题的方法。

缺少接收文件的编码,然后缺少对 utf8 的更改

我只需要添加这一行 anocsv.write(curlresult.decode('iso8859-1').encode('utf-8'))

于 2013-08-22T20:11:03.553 回答