У меня есть данные, к которым осуществляется доступ через http-запрос и которые отправляются сервером в формате, разделенном запятыми, у меня есть следующий код:
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)
Содержание текста следующее:
april,2,5,7
may,3,5,8
june,4,7,3
july,5,6,9
Как сохранить эти данные в файл CSV. Я знаю, что могу сделать что-то вроде следующего, чтобы перебирать строку за строкой:
import StringIO
s = StringIO.StringIO(text)
for line in s:
Но я не уверен, как теперь правильно записывать каждую строку в CSV
РЕДАКТИРОВАТЬ ---> Спасибо за отзыв, поскольку решение было довольно простым и его можно увидеть ниже.
Решение:
import StringIO
s = StringIO.StringIO(text)
with open('fileName.csv', 'w') as f:
for line in s:
f.write(line)
StringIO
импорт, если честно. Кроме того, решение как есть, вероятно, не разделяет строки, так какf.write()
не добавляет новые строки автоматически.Ответы:
Общий способ:
ИЛИ
Использование CSV Writer:
ИЛИ
Самый простой способ:
источник
with open(<path to output_csv>, "w", newline='') as csv_file:
for line in data:
. Пожалуйста, исправьте это. Спасибо.'a'
(режим добавления) вместо'w'
(режим записи).Вы можете просто записать в файл, как если бы вы записали любой обычный файл.
Если на всякий случай это список списков, вы можете напрямую использовать встроенный
csv
модульисточник
Я бы просто записал каждую строку в файл, поскольку он уже в формате CSV:
Я не могу вспомнить, как писать строки с переносом строки в данный момент: p
Кроме того , вы хотели бы взглянуть на этот ответ о
write()
,writelines()
и'\n'
.источник
Чтобы дополнить предыдущие ответы, я создал быстрый класс для записи в файлы CSV. Это упрощает управление открытыми файлами и их закрытие, а также обеспечивает согласованность и более чистый код, если вам приходится иметь дело с несколькими файлами.
Пример использования:
Радоваться, веселиться
источник
Как насчет этого:
источник