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

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

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

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

代码:

#!coding=utf-8
import os
import re
import random
# 获取当前目录文件列表
def getNum():
    flist = oslistdir(osgetcwd())
    # 遍历文件
    for f in flist:
        if f != ospathbasename(__file__):
            with open(f, 'r') as fn:
                text = fnread()
                num = refindall(r'评论人数:(\d+)', text)
                print f, num
# 文件写入测试
def test():
    for i in range(10):
        with open('%dtxt' % i, 'w') as f:
            fwrite('文件:%d\n每家餐馆是一个文件,统计评论数,求读取每个文件中 “评论人数:%d” 中 的60并相加,求具体程序,60是个例子' % (i, randomrandint(1, 200)))
    print u'文件写入完毕'
if __name__ == '__main__':
    # test()
    getNum()

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

测试结果

C:\Python27\pythonexe D:/11/cpy
文件写入完毕
0txt ['131']
1txt ['181']
2txt ['56']
3txt ['119']
4txt ['18']
5txt ['103']
6txt ['88']
7txt ['115']
8txt ['160']
9txt ['136']
Process finished with exit code 0

对于一个空的Python列表,往后添加内容有很多种,其中两种一个是用“+”直接添加内容,另外一种是Listnameappend(x)来添加内容
其中,如果处理字符串
在使用“+”的时候,会将字符串拆成一个个列表元素(注:考虑到字符串可以用“[]” *** 作,所以“当作”列表更贴切),分别添加在列表后面,而用append则是将字符串打包成一个元素,添加到列表中。
例如,如果使用append:
all = []
print "\nEnter lines('' by itself to quit)\n"
while True:
entry = raw_input(">")
if entry == '':
allappend("")
break
else:
allappend(entry)
print all
print "Done!"
假设输入到内容为hello、world,那么其结果为:
Enter lines('' by itself to quit)
>hello
>world
>
['hello', 'world', '']
Done!
如果是用“+”:
all = []
print "\nEnter lines('' by itself to quit)\n"
while True:
entry = raw_input(">")
if entry == '':
allappend("")
break
else:
all+=(entry)
print all
print "Done!"
那么输出结果为:
Enter lines('' by itself to quit)
>hello
>world
>
['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd', '']
Done!

字符串 :在python中是作为序列存在的,序列中的元素具有从左到右的顺序,并根据他们的相对位置进行读取和储存。严格意义来说,字符串是一系列单个字符组成的序列,其他类型的序列还包括列表和元组。在一串字符两侧加上双引号或者单引号即可创建字符串。

注意 :如果字符串中需要出现双引号或者单引号,则有两种方法。
1)使用转义字符(\)进行转义。
2)将双引号和单引号配合使用,即若向想打印单引号,可以使用双引号表示字符串,在字符串中只用一个单引号。反之亦然。

在一个字符串前面加上r;则会自动为字符串中的反斜杠\转义,使其只代表一个反斜杠\。但是注意,原始字符串最后不能有反斜杠\,否则会发生语法错误。如果非要在原始字符串最后加上,则可以写为\。

运行结果为:

有时我们需要创建一个跨行的字符串,则可以使用三引号来创建。

运行结果为

1)可以通过len()函数得到序列的长度。

运行结果为:

2)可以通过索引 *** 作得到序列的各个元素值。python中序列的索引是从0开始依次向后推移。

运行结果为:

3)python还支持反向索引,是从最后一个向前推移的。-1是指序列中的最后一个元素值,-len(str)是指该序列的第一个元素值。

运行结果为:

4)序列还支持一种 分片(slice) 的 *** 作,这是一种能够一步提取整个分片的方法。
分片可以看作是字符串中一部提取出其中一部分的方法。其一般形式为:X[I:J],表示从X序列中取出第I个元素到不包含第J个元素的部分,结果为返回一个新的对象。

运行结果为:

在一个分片(slice)中,左边界默认为0。同时应注意负偏移量在分片中的边界,也应为左侧数字比右侧数字小。拷贝全部字符串的用法为str[:]。

运行结果为:

5)作为一个序列,字符串还支持用“+”来合并字符串。

运行结果为:

6) 不可变性 ,python中字符串具有不可变性,在创建一个字符串之后不可以通过对其某一位置进行赋值而改变该字符串,但可以通过创建一个新的字符串并以同一个变量名命名。

运行结果为:

7)除了一般的序列 *** 作,字符串还有一些其特有的 *** 作方法。
如find()方法,可以用于查找一个子字符串,可以返回该子字符串的索引值。但如果存在多个符合的子字符串,只会返回第一个索引值。如果不存在该子字符串,则返回-1。replace(S1,S2)方法会将字符串中的S1替换为S2。

运行结果如下:

关于字符串,python还有许多内置函数,可以通过调用dir()函数来查看。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13387466.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-26
下一篇 2023-07-26

发表评论

登录后才能评论

评论列表(0条)

保存