Лишние пустые строки при записи в csv файл
Код:
import csv
import requests
from bs4 import BeautifulSoup
def get_resp(url):
resp = requests.get(url)
return resp.text
def write_csv(data):
with open('proxy.csv', 'a') as f:
writer = csv.writer(f)
writer.writerow([
data['ip'],
data['port']
])
def get_page(html):
sp = BeautifulSoup(html, 'lxml')
trs = sp.find('table', id='proxylisttable').find('tbody').find_all('tr')[:3]
for tr in trs:
tds = tr.find_all('td')
ip = tds[0].text
port = tds[1].text
data = {'ip': ip,'port': port}
write_csv(data)
Пропускает строку после итерации:
Ответы (2 шт):
Автор решения: Jack_oS
→ Ссылка
Попробуйте в контекст добавить параметр newline со значением - пустая строка:
with open('proxy.csv', 'a', newline='') as f:
writer = csv.writer(f)
UPD кстати, в доках рекомендуют именно так и открывать
Автор решения: Sky
→ Ссылка
Просто перед заливкой удалите пустые строки. Попробуйте пандас
import pandas as pd
df[pd.notnull(df['Любой столбец'])]
и сформировать csv там можете
df=[] # какойто дата врейм
pd.df.to_csv()
