首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Add Columns CSV

Python Add Columns CSV
EN

Stack Overflow用户
提问于 2017-07-21 11:02:31
回答 1查看 164关注 0票数 0

我正在制作一个从这个website上抓取表格的网络刮刀。如你所见,我让它在一个循环中运行,为每个网页创建一个新的CSV文件。

问题是,由于它正在制作一个新的网页,我最终有大约100个CSV文件。我应该如何编译这些?我希望它是包含所有列的单个CSV文件(第一个CSV文件中的列是A列,第二个CSV文件中的列是B列,依此类推)。每个CSV文件只有一列,所以我只想合并所有文件。下面是我的代码:

代码语言:javascript
复制
import csv
import requests
import bs4
count = 1
while count < 1000:
url = "https://www.techpowerup.com/gpudb/" + str(count)

response = requests.get(url)
html = response.content

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

soup = bs4.BeautifulSoup(html, "lxml")

tables = soup.findAll("table")

tableMatrix = []
for table in tables:
    #Here you can do whatever you want with the data! You can findAll table row headers, etc...
    list_of_rows = []
    for row in table.findAll('tr'):
        list_of_cells = []
        for cell in row.findAll('td'):
            text = cell.text.replace('&nbsp;', '')
            list_of_cells.append(text)
        list_of_rows.append(list_of_cells)
    tableMatrix.append((list_of_rows, list_of_cells))

placeHolder = 0
excelTable = []

for table in tableMatrix:
    for row in table:
        if placeHolder == 0:
            for entry in row:
                excelTable.append(entry)
            placeHolder = 1
        else:
            placeHolder = 0
    excelTable.append('\n')      

for value in excelTable:
    print value
    print '\n'
count += 1  
fl = open(str(count) + '.csv', 'w')

writer = csv.writer(fl)
for values in excelTable:
    writer.writerow(values)

fl.close()   
EN

回答 1

Stack Overflow用户

发布于 2017-07-21 14:21:30

您可以使用pyexcel。首先将列的数据存储在一个列表中,然后动态地将该列数据存储在另一个列表中。以下代码将帮助您动态创建列表列表。将所有数据存储在final_list中之后,您可以将其转储到pyexcel临时表中,然后将其保存到csv文件中。

代码语言:javascript
复制
import pyexcel as pe
Final_list = []   
for i in range(6): # number of column you want to create
    Final_list.append([])
    for n in range(6): # number of data for a particular column
        Final_list[i].append('col'+str(n)) # data for column

print(Final_list)
sheet = pe.Sheet(Final_list)
print(sheet)
sheet.save_as("Final.csv")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45228300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档