用Python替换逗号

时间:2013-05-07 17:05:14

标签: python

在进行网页抓取时,我遇到了从字符串中删除逗号的问题。我的代码如下。

import urllib

import re

htmlfile = urllib.urlopen ("http://example.com") 

htmltext = htmlfile.read ()

regex = 'Posts: (.+?)\n'

value = re.compile(regex)

posts = re.findall(value,htmltext)

print posts[0]

现在我收到的数据还可以,但问题是帖子计数是用逗号输入的,其值为1,092,391,我想删除逗号,留下一个数字,例如1092391.

我已经安装了Python 2.7.1,而且我在这里找不到任何东西,或者Google似乎没有用。我虽然是一个新手,所以我无疑在这里错过了一些如此愚蠢的东西,但我确实喜欢学习并弄脏手。所以任何帮助都会非常感激。

4 个答案:

答案 0 :(得分:2)

替换它们:

posts[0].replace(',', '')

或者使用locale模块(如果您的语言环境的千位分隔符是逗号):

import locale

locale.setlocale(locale.LC_ALL, '')
n = locale.atoi(posts[0])

我建议不要使用正则表达式进行抓取。除非你只是Posts: (.*?),否则用HTML解析器解析HTML,如lxml或BeautifulSoup。

答案 1 :(得分:2)

>>> '1,092,391'
'1,092,391'
>>> '1,092,391'.replace(',', '')
'1092391'
>>> int('1,092,391'.replace(',', ''))
1092391

  

我在这里找不到任何内容,或Google似乎无法正常工作

我很难相信这一点。快速搜索“Python字符串替换”应该会很快到达str.replace,更不用说在Python文档中搜索它会让你更快。我得到的“Python逗号替换”的第一个结果是a question on SO来回答你的问题。

如果一切都失败了,你可以使用你显然已经知道如何使用的正则表达式。

答案 2 :(得分:0)

这是一个非常简单的方法..只需用空字符串替换,

 >>> '1,092,391'.replace(',','')
 '1092391'

答案 3 :(得分:0)

"".join('1,092,391'.split(','))