如何将刮下的数据写入调整良好的列?

时间:2014-02-16 14:33:14

标签: python beautifulsoup

我正在使用BeautifulSoup抓取数据,我正在尝试将抓取的数据写入我想要调整良好的列的文件中。

这是我目前的代码产生的内容:

1997       Fisrt Round         Sampras, Pete       Reneberg, Richey        4-6, 6-4, 6-3, 6-3
1997       Fisrt Round         Philippoussis, Mark       Frana, Javier        4-6, 6-4, 6-3, 6-3
1997       Fisrt Round         Goossens, Kris       Black, Byron        4-6, 6-4, 6-3, 6-3
...

我希望输出看起来像这样:

1997       Fisrt Round         Sampras, Pete             Reneberg, Richey        4-6, 6-4, 6-3, 6-3
1997       Fisrt Round         Philippoussis, Mark       Frana, Javier           4-6, 6-4, 6-3, 6-3
1997       Fisrt Round         Goossens, Kris            Black, Byron            4-6, 6-4, 6-3, 6-3
...

这是我的代码:

for tournamentYear_url in tournamentYear_urls:
    i = 0
    tournamentYear+=1
    soup = make_soup(tournamentYear_url)
    while i < len(get_player_name_first_round(soup)):
        mon_fichier.write(str(tournamentYear) + "       ")
        mon_fichier.write(str("Fisrt Round         "))
        mon_fichier.write(get_player_name_first_round(soup)[i] + "       ")
        mon_fichier.write(get_player_name_first_round(soup)[i+1] + "        ")
        mon_fichier.write(get_player_score_first_round_winner(soup) + "\n")
        i+=2

1 个答案:

答案 0 :(得分:3)

看看Python的Format Specification Mini-Language

有一个特别关于文本对齐和字段宽度/填充的部分:

  

'&lt;' - 强制字段在可用空间内左对齐(这是大多数对象的默认值)。

     

'&gt;' - 强制字段在可用空间内右对齐(这是数字的默认值)。

     

'=' - 强制将填充符放在符号后面(如果有)但在数字前面。这用于以“+000000120”形式打印字段。此对齐选项仅对数字类型有效。

     

'^' - 强制字段在可用空间内居中。

以及有关如何使用format()的文档中的一些示例:

>>> '{:<30}'.format('left aligned')
'left aligned                  '
>>> '{:>30}'.format('right aligned')
'                 right aligned'
>>> '{:^30}'.format('centered')
'           centered           '
>>> '{:*^30}'.format('centered')  # use '*' as a fill char
'***********centered***********'