Python,csv的代码。麻烦

时间:2015-10-15 22:07:52

标签: python csv output

首先想说我已经研究了大约2天的论坛,并没有找到任何适合我的东西。 好吧,我们走了。我正在废弃一个网站,我只需要按顺序设置python代码的输出。

这是我在运行它之后得到的:

1 
Kidderminster Harr
1183
283
138
170
1005
731
""
208
148
236
813
877
""
+210
1727
.536

在一栏中......

这就是我想要的:我想要一个像这样的csv

1, Kidderminster Harr, 1183, 283, 138, 170, 1005, 731, "", 208, 148, 236,etc...

前一段时间,我记得在每个元素上添加+','就会成功......现在我不知道为什么不再工作了......

这是我到目前为止所做的:

import requests
from bs4 import BeautifulSoup

req = requests.get('http://www.statto.com/football/stats/england/national-league/all-time-table', headers={'User-Agent':'a-user-agent'})
soup = BeautifulSoup(req.text)
summary = soup.find("div",{"id" : "page-content"})
tables = summary.find('table')
count = 0
for row in tables.findAll('tr'):
    for cell in row.findAll('td'):
        data = cell.getText()
        if (count < 18):
            data = data + ';'
            print data
        count += 1
        if (count==19):
            print data
        count = 0

非常感谢任何想法。

3 个答案:

答案 0 :(得分:0)

如果我理解正确,你想拆分空格,然后用逗号加入:

lambda_plus

>>> string = "1 Kidderminster Harr 1183 283 138 170 1005 731 "" 208 148 236 813 877 "" +210 1727 .536" >>> ", ".join(string.split()) '1, Kidderminster, Harr, 1183, 283, 138, 170, 1005, 731, 208, 148, 236, 813, 877, +210, 1727, .536' 方法会将字符串按空格分成列表,然后split创建一个字符串,每个列表成员用join分隔。

修改:您的问题稍有改动,但如果您可以将列的每个部分附加到列表中,请拨打", "

答案 1 :(得分:0)

print data,

打印数据和换行符。

if (count < 18):
    data = data + ","
    print data,
    count += 1
elif (count==19):
    print data
    count = 0

抑制换行符。 这有帮助吗?

我想你想要:

{{1}}

有更多的pythonic方法可以做到这一点,但这是我认为你的问题的答案。

答案 2 :(得分:0)

查看您的代码首先需要初始化结果字符串,如下所示:

result = ""

在第二个for循环之前执行此操作。那么你需要在打印数据变量的两个地方添加该循环

result = result + data + ", "

result = result + data

然后在第二行之后

print result

你应该得到你需要的东西。