Python添加列CSV

Python添加列CSV,python,html,csv,web-scraping,multiple-columns,Python,Html,Csv,Web Scraping,Multiple Columns,我正在做一个刮网器,从这个刮表。正如您所看到的,我让它在一个循环中运行,为每个网页生成一个新的CSV文件 问题是,因为它是一个新的网页,我在最后像100个CSV文件。我应该如何编译这些?我希望它是一个包含所有列的单一CSV文件(第一个CSV文件中的列是a列,第二个CSV文件中的列是B列,等等)。每个CSV文件只有一列,所以我只想合并所有文件。这是我的密码: import csv import requests import bs4 count = 1 while count < 1000:

我正在做一个刮网器,从这个刮表。正如您所看到的,我让它在一个循环中运行,为每个网页生成一个新的CSV文件

问题是,因为它是一个新的网页,我在最后像100个CSV文件。我应该如何编译这些?我希望它是一个包含所有列的单一CSV文件(第一个CSV文件中的列是a列,第二个CSV文件中的列是B列,等等)。每个CSV文件只有一列,所以我只想合并所有文件。这是我的密码:

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()   
导入csv
导入请求
进口bs4
计数=1
当计数小于1000时:
url=”https://www.techpowerup.com/gpudb/“+str(计数)
response=requests.get(url)
html=response.content
导入系统
重新加载(系统)
sys.setdefaultencoding('utf-8')
soup=bs4.BeautifulSoup(html,“lxml”)
tables=soup.findAll(“table”)
tableMatrix=[]
对于表中的表:
#在这里,您可以对数据执行任何操作!您可以查找所有表格行标题等。。。
行的列表=[]
对于table.findAll('tr')中的行:
单元格列表=[]
对于行.findAll('td')中的单元格:
text=cell.text.replace(“”,“”)
单元格列表。追加(文本)
列出\u行。追加(列出\u单元格)
tableMatrix.append((行列表,单元格列表))
占位符=0
excelTable=[]
对于tableMatrix中的表格:
对于表中的行:
如果占位符==0:
对于第行中的条目:
excelTable.append(条目)
占位符=1
其他:
占位符=0
excelTable.append(“\n”)
对于excelTable中的值:
打印值
打印“\n”
计数+=1
fl=打开(str(计数)+'.csv',w')
writer=csv.writer(fl)
对于Excel表中的值:
writer.writerow(值)
fl.关闭()

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

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")

我建议使用
pandas
软件包,而不是
csv
——它更强大,更容易进行添加等操作columns@SantiagoBenoit在csv中有没有简单的解决方法?什么是单列csv文件?如果只有一列,则这些列之间没有任何分隔。如何从这个问题中删除所有不相关的web抓取代码,并显示一个示例数据文件,以及您希望得到的合并文件的外观。然后希望能尝试解决合并问题。