使用Python生成数据并导出到excel文件

时间:2018-03-19 15:15:21

标签: python excel file csv

我非常喜欢初学者。这会从URL生成“正确”数据,但是当我尝试生成CSV文件时,生成的Excel文件为空。 这是代码......

import csv
import urllib.request
from bs4 import BeautifulSoup

f = open('dataoutput.csv', 'w', newline = "")
writer = csv.writer(f)

soup = BeautifulSoup(urllib.request.urlopen("https://www.rjobrien.co.uk/tools/quoteresult/symbol/FGBLM8").read(), 'lxml')

tbody = soup('table', {"class": "table table-bordered table-condensed"})[0].find_all('tr')

for row in tbody:
    cols = row.findChildren(recursive=False)
    cols = [ele.text.strip() for ele in cols]

writer.writerow(cols)

2 个答案:

答案 0 :(得分:0)

你的意思是在循环之后放置writerow()吗?如上所述,它只会产生最后一行。

我假设您稍后会f.close()。我建议使用with来关闭范围末尾的文件。例如,

with open('dataoutput.csv', 'w', newline = "") as f:
    writer = csv.writer(f)
    ...

答案 1 :(得分:0)

您应该使用与循环相同的标识缩进<tab>writer.writerow(cols)

完成文件编写后,您应该f.close()。 Python应该自动执行,但你永远不知道它什么时候会这样做,而你正在使用系统资源(并行打开有限数量的文件)。

最终您可以添加第一行:sep=,,这样您就可以使用不同的Excel区域设置。见https://superuser.com/questions/407082/easiest-way-to-open-csv-with-commas-in-excel