В настоящее время я провожу неделю в месте с очень неисправным интернет-сервисом, одновременно пытаясь очистить данные онлайн для проекта. В частности, я посещаю каждый URL-адрес из списка URL-адресов и соскабливая определенную часть данных с каждого веб-сайта, чтобы вставить в CSV-файл. Список URL-адресов довольно велик (33 000+ URL-адресов), и мне трудно найти, где я остановился, когда Интернет опустится. Есть ли способ сделать это быстро? Вот что у меня есть:Как написать строки в текстовый файл после определенной строки #?
def makeCSV(csv_src):
#END_TOKEN = " __END__ENTRY__"
with open(new_src, 'r') as f, open(csv_src, 'a') as fcsv:
count = 40
for i, url in enumerate(f):
while i >= count and count < len(f.readlines()):
count += 1
wr = csv.writer(fcsv, quoting=csv.QUOTE_ALL)
speaking, studying, entry, incorrect, correct = mineLearnerData(url)
data = [speaking, studying, incorrect, correct]
wr.writerow(data)
#f2.write(str(entry + END_TOKEN) + '\n')
print(count)
f.close(); fcsv.close()
'f' представляет файл URL, который я использую. Я отправляю определенную информацию из URL-адресов этого файла в указанный путь к файлу CSV. «Count» представляет следующий URL-адрес для просмотра. В идеале я также хотел бы использовать что-то линейное len (fcsv.readlines()), но я продолжаю получать ошибки ascii.
Кроме того, я открыт для предложений относительно эффективных способов сделать это, так как я совершенно не знаком с процессом сбора данных &.
Иногда проще читать все строки в памяти, добавлять новые строки и записывать все строки в файл. – furas