用c语言或者python将文件中特定字符串后面的数字相加

从点评网爬了一些餐馆的评论每家餐馆是一个文件,现在想统计评论数,求读取每个文件中“评论人数:60”中的60并相加,求具体程序,60是个例子... 从点评网爬了一些餐馆的评论
每家餐馆是一个文件,现在想统计评论数,求读取每个文件中 “评论人数:60” 中 的60并相加,求具体程序,60是个例子
展开
 我来答
lpe234
推荐于2016-06-18 · TA获得超过2778个赞
知道小有建树答主
回答量:1250
采纳率:50%
帮助的人:561万
展开全部

代码应该不难吧。既然用爬虫爬下来了,为什么爬取数据的时候没做处理呢。

之前用过Scrapy爬虫框架,挺好用的,你可研究下。

代码:

#!coding=utf-8
import os
import re
import random

# 获取当前目录文件列表
def getNum():
    flist = os.listdir(os.getcwd())
    # 遍历文件
    for f in flist:
        if f != os.path.basename(__file__):
            with open(f, 'r') as fn:
                text = fn.read()
                num = re.findall(r'评论人数:(\d+)', text)
                print f, num


# 文件写入测试
def test():
    for i in range(10):
        with open('%d.txt' % i, 'w') as f:
            f.write('文件:%d\n每家餐馆是一个文件,统计评论数,求读取每个文件中 “评论人数:%d” 中 的60并相加,求具体程序,60是个例子' % (i, random.randint(1, 200)))
    print u'文件写入完毕'

if __name__ == '__main__':
    # test()
    getNum()

代码基本符合要求,但健壮性有些差。你自己用的时候修改吧

测试结果:

C:\Python27\python.exe D:/11/c.py
文件写入完毕
0.txt ['131']
1.txt ['181']
2.txt ['56']
3.txt ['119']
4.txt ['18']
5.txt ['103']
6.txt ['88']
7.txt ['115']
8.txt ['160']
9.txt ['136']

Process finished with exit code 0
更多追问追答
追问
大神,文件路径怎么改?我没学过Python,代码都是别人给的。。
追答
# 你把下面这句修改了
flist = os.listdir(os.getcwd())

# 改成下面的
flist = ''
print u'路径必须为全路径:如下示例'
print u'D:/test/'
flist = str(raw_input(u'输入路径,默认为当前目录'))
if list == '':
    flist = os.listdir(os.getcwd())

这样应该可以了

tattackor
2015-10-31 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:885万
展开全部
1、先把字符串后面的数字截取出来,转换成数字格式即可相加。
2、C语言有atoi、atol、atof等库函数,可分别把ASCII编码的字符串转化为int、long、float类型的数字。
头文件:stdlib.h
函数原型:int atoi(const char* nptr);
(另外两个类似)

举个例子:
char *str="123";
int num=atoi(str);
执行后,num的值被初始化为123
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式