Получение вывода списка для правильной записи в строках в CSV-файле - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь записать этот вывод в файл CSV, но он просто не работает. Я пробовал много написания учебников CSV, но ни один из них не работает. Если вы могли бы направить меня к руководству, объясняющему, почему это не работает, я хотел бы изучить проблему и решить ее.

import bs4
from urllib.request import urlopen as ureq
from bs4 import BeautifulSoup as soup
import csv

myurl = 'https://www.newegg.com/Video-Cards-Video-Devices/Category/ID-38'

uclient = ureq(myurl)
page_html = uclient.read()
uclient.close()
page_soup = soup(page_html, 'html.parser')
items = page_soup.find_all('div', {'class':'item-container'})

#filename = 'zeus.csv'
#f = open(filename, 'w')
#header = 'Item Details\n'

#f.write(header)

#contain = items[0]
#container = items[0]
for container in items:
    details = container.a.img['title']
    with open('zeus.csv', 'w') as f:
        f.write(details + "\n")
    #print(details)

Ответы [ 2 ]

0 голосов
/ 01 мая 2020

Вы можете запустить

with open('zeus.csv', 'w') as f:
    for container in items:
        details = container.a.img['title']
        f.write("{} \n ".format(details))

Проблемы, которые были в коде, заключаются в том, что с open ('zeus.csv', 'w'), так как f: было в l oop, поэтому в каждом итерация перезаписывается предыдущими итерациями.

0 голосов
/ 01 мая 2020

Вы можете попробовать что-то подобное для записи списка в файл .csv:

import csv

#open file
with open(..., 'w', newline='') as your_file:
     writer = csv.writer(your_file, quoting=csv.QUOTE_ALL)

     # write your list values
     writer.writerow(your_list)
...