Tenho dados que estão sendo acessados via solicitação http e são devolvidos pelo servidor em formato separado por vírgulas, tenho o seguinte código:
site= 'www.example.com'
hdr = {'User-Agent': 'Mozilla/5.0'}
req = urllib2.Request(site,headers=hdr)
page = urllib2.urlopen(req)
soup = BeautifulSoup(page)
soup = soup.get_text()
text=str(soup)
O conteúdo do texto é o seguinte:
april,2,5,7
may,3,5,8
june,4,7,3
july,5,6,9
Como posso salvar esses dados em um arquivo CSV. Eu sei que posso fazer algo ao longo das linhas a seguir para iterar linha por linha:
import StringIO
s = StringIO.StringIO(text)
for line in s:
Mas não tenho certeza de como agora escrever corretamente cada linha em CSV
EDITAR ---> Obrigado pelo feedback, pois sugerido a solução era bastante simples e pode ser vista abaixo.
Solução:
import StringIO
s = StringIO.StringIO(text)
with open('fileName.csv', 'w') as f:
for line in s:
f.write(line)
StringIO
importação, para ser honesto. Além disso, a solução no estado em que se encontra provavelmente não separa as linhas, poisf.write()
não acrescenta novas linhas automaticamente.Respostas:
Forma geral:
OU
Usando o escritor CSV:
OU
Maneira mais simples:
fonte
with open(<path to output_csv>, "w", newline='') as csv_file:
for line in data:
. Por favor, corrija isso. Obrigado.'a'
(modo anexar) em vez de'w'
(modo de gravação).Você pode simplesmente gravar no arquivo como faria em qualquer arquivo normal.
Se apenas no caso, é uma lista de listas, você pode usar diretamente o
csv
módulo integradofonte
Eu simplesmente escreveria cada linha em um arquivo, uma vez que já está em um formato CSV:
Não consigo me lembrar de como escrever linhas com quebras de linha no momento, embora: p
Além disso, você pode querer dar uma olhada esta resposta sobre
write()
,writelines()
e'\n'
.fonte
Para complementar as respostas anteriores, criei uma aula rápida para escrever em arquivos CSV. Torna mais fácil gerenciar e fechar arquivos abertos e obter consistência e código mais limpo se você tiver que lidar com vários arquivos.
Exemplo de uso:
Diverta-se
fonte
Que tal isso:
fonte