获取列表输出以在 csv 文件的行中正确写入
Getting a list output to write correctly in rows in a csv file
我正在尝试将此输出写入 csv 文件,但根本无法正常工作。我尝试了很多编写 csv 教程的方法,但其中 none 有效。如果你能指导我看解释为什么这不起作用的教程,我想了解这个问题并解决它。
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)
您可以尝试类似的方法将列表写入 .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)
你可以运行
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') as f: 在循环中,因此在每次迭代中都会覆盖之前的迭代。
我正在尝试将此输出写入 csv 文件,但根本无法正常工作。我尝试了很多编写 csv 教程的方法,但其中 none 有效。如果你能指导我看解释为什么这不起作用的教程,我想了解这个问题并解决它。
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)
您可以尝试类似的方法将列表写入 .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)
你可以运行
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') as f: 在循环中,因此在每次迭代中都会覆盖之前的迭代。