BeautifulSoup my for循环是在单独的行中打印数据。我如何在1行打印

时间:2016-05-14 21:32:03

标签: python-2.7 beautifulsoup

我从html文件中获得以下示例HTML表格 我正在尝试打印文本

<table>
        <tr>
            <th>Class</th>
            <th class="failed">Fail</th>
            <th class="failed">Error</th>
            <th>Skip</th>
            <th>Success</th>
            <th>Total</th>
        </tr>
            <tr>
                <td>Regression_TestCase.RegressionProject_TestCase2.RegressionProject_TestCase2</td>
                <td class="failed">1</td>
                <td class="failed">9</td>
                <td>0</td>
                <td>219</td>
                <td>229</td>
            </tr>
        <tr>
            <td><strong>Total</strong></td>
            <td class="failed">1</td>
            <td class="failed">9</td>
            <td>0</td>
            <td>219</td>
            <td>229</td>
        </tr>
    </table>

我的循环是:

def extract_data_from_report():
    html_report = open(r"E:\projects\ClearCore\ClearCore Regression\selenium_regression_test_5_1_1\TestReport\SeleniumTestReport.html",'r').read()
    soup = BeautifulSoup(html_report, "html.parser")
    print soup.find_all('th')
    print soup.find_all('td')

    for item in soup.find_all('th'):
        print item.text

输出结果为:

Class
Fail
Error
Skip
Success
Total

我希望输出如下:

Class Fail Error Skip Success Total

如何在一行中打印所有内容?

谢谢Riaz

1 个答案:

答案 0 :(得分:1)

默认情况下,每次有print语句时,Python都会添加换行符。如果在要打印的项目列表的末尾添加逗号,Python将在末尾添加一个空格而不添加换行符。你需要做的是:

替换

print item.text

print item.text,

在打印列表中的所有内容(即功能的最后)后,您还需要一个print。这会将终止换行符放在列表的末尾。