将简单列表写入新的CSV文件

时间:2014-02-28 12:27:42

标签: python excel list csv

我是python的新手,我想知道如何编写新的CSV文件,其中包含一个简单的列表。然后我将在Excel工作表中使用此文件。


我的完整代码:

import csv
import urllib
from bs4 import BeautifulSoup

sock = urllib.urlopen("http://www.fatm.com.es/Datos_Equipo.asp?Cod=03CA0007")
htmlSource = sock.read()
sock.close()
soup = BeautifulSoup(htmlSource)

form = soup.find("form", {'id': "FORM1"})
table = form.find("table")

entidad = [item.text.strip() for item in table.find_all('td')]

valores = [item.get('value') for item in form.find_all('input')]

lista = entidad

i = 0
x = 1

while i <=10:


    lista.insert(i+x, valores[i])
    i += 1
    x += 1

print lista

w = csv.writer(file(r'C:\Python27\yo.csv','wb'),dialect='excel')
w.writerows(lista)

lista = [u'Club', 
         u'CLUB TENIS DE MESA PORTUENSE',
         u'Nombre Equipo',
         u'C.T.M. PORTUENSE',
         u'Telefono fijo',
         u'630970055',
         u'Telefono Movil',
         u'630970055',
         u'E_Mail',
         u'M.LOPEZ_70@HOTMAIL.COM',
         u'Local de Juego',
         u'INSTITUTO MAR DE CADIZ',
         u'Categoria',
         u'DIVISION HONOR ANDALUZA',
         u'Grupo',
         u'GRUPO 9',
         u'Delegado',
         u'SANCHEZ SANTANO, JOSE MARIA',
         u'*Dias de Juego',
         u'SABADO',
         u'*Hora de Juego',
         u'17:00']

我的结果:一个空的CSV文件。 :(

提前致谢!!!

1 个答案:

答案 0 :(得分:0)

你走了:

import csv 

lista = [u'Club',
         u'CLUB TENIS DE MESA PORTUENSE',
         u'Nombre Equipo',
         u'C.T.M. PORTUENSE',
         u'Telefono fijo',
         u'630970055',
         u'Telefono Movil',
         u'630970055', u'E_Mail', u'M.LOPEZ_70@HOTMAIL.COM', u'Local de Juego', u'INSTITUTO MAR DE CADIZ', u'Categoria', u'DIVISION HONOR ANDALUZA', u'Grupo', u'GRUPO 9', u'Delegado', u'SANCHEZ SANTANO, JOSE MARIA', u'*Dias de Juego', u'SABADO', u'*Hora de Juego', u'17:00']

header = []
row = []
for i, val in enumerate(lista):
    if i%2==0:
        header.append(val)
    else:
        row.append(val)

out = open('file.csv', 'w')

w = csv.writer(out, dialect='excel')
w.writerow(header)
w.writerow(row)
out.close()

作为后续问题。我要做的就是为你的列名创建一个列表,例如:

header = ['col_name1', 'col_name2', ... ]

以及值的列表列表,如:

values = [
   [row1_val1, row1_val2, ...],
   [row2_val1, row2_val2, ...],
   ...
]

然后你可以这样做:

w.writerow(header)
for row in values:
    w.writerow(row)

检查csv模块的文档,可能有一种方法可以一次写入所有行。我自己从未使用过它。