python字符串切割以及正则表达式的简单实例操作

1.下面的log变量记录了云服务器上 当天上传的文件信息# 其中第一列是文件名,第二列是文件大小## 请编写一个程序,统计出不同类型的 文件的大小总和# 比如:# jpeg 9988999# json 324324# png 2423233#
log = '''f20180111014341/i_51a7hC3W.jpeg    169472 FrITJxleSP7wUD-MWw-phL_KP6Eu   15156063244230469  image/jpeg 0  f20180111014341/j_R0Hpl4EG.json    1036   ForGzwzV3e-uR3_UzvppJs1VgfQG   15156064773253144  application/json   0  f20180111020739/i_0TDKs0rD.jpeg    169472 FrITJxleSP7wUD-MWw-phL_KP6Eu   15156076847077556  image/jpeg 0  f20180111020739/j_JFO6xiir.json    1040   FmUhTchdLOd7LBoE8OXzPLDKcW60   15156077904192983  application/json   0  f20180111090619/i_1BwNksbL.jpg 49634  FtXBGmipcDha-67WQgGQR5shEBu2   15156329458714950  image/jpeg 0  f20180111090619/i_3BKlsRaZ.jpg 30152  FoWfMSuqz4TEQl5FT-FY5wqu5NGf   15156330575626044  image/jpeg 0  f20180111090619/i_5XboXSKh.jpg 40238  Fl84WaBWThHovIBsQaNFoIaPZcWh   15156329453409855  image/jpeg 0  f20180111090619/i_6DiYSBKp.jpg 74017  FrYG3icChRmFGnWQK6rYxa88KuQI   15156329461803290  image/jpeg 0  f20180111090619/i_76zaF2IM.jpg 38437  Fui8g5OrJh0GQqZzT9wtepfq99lJ   15156334738356648  image/jpeg 0  f20180111090619/i_B6TFYjks.jpg 37953  FleWqlK2W1ZmEgAatAEcm1gpR0kC   15156329464034474  image/jpeg 0  f20180111090619/i_N9eITqj3.jpg 38437  Fui8g5OrJh0GQqZzT9wtepfq99lJ   15156330419595764  image/jpeg 0  f20180111090619/i_QTSNWmA6.jpg 37953  FleWqlK2W1ZmEgAatAEcm1gpR0kC   15156333104224056  image/jpeg 0  f20180111090619/i_XdHcAfh1.jpg 56479  FjLQIQ3GxSEHDfu6tRcMylK1MZ05   15156334227270309  image/jpeg 0  f20180111090619/i_Xyy723MU.jpg 50076  FsfZpQzqu084RUw5NPYW9-Yfam_R   15156334229987458  image/jpeg 0  f20180111090619/i_d8Go0EOv.jpg 30152  FoWfMSuqz4TEQl5FT-FY5wqu5NGf   15156334736228515  image/jpeg 0  f20180111090619/i_diuHmX53.jpg 40591  FuTx1pw4idbKnV5MSvNGxCA5L470   15156333878320713  image/jpeg 0  f20180111090619/i_qQKzheSH.jpg 55858  Fj0A3i8V7fzzOiPQFL79ao15hkN9   15156329456666591  image/jpeg 0  f20180111090619/i_rHL5SYk8.jpg 40238  Fl84WaBWThHovIBsQaNFoIaPZcWh   15156336509742181  image/jpeg 0  f20180111090619/i_xZmQxUbz.jpg 40238  Fl84WaBWThHovIBsQaNFoIaPZcWh   15156333240603466  image/jpeg 0  f20180111090619/i_zBDNgXDv.jpeg    73616  FlgNwq8lypgsxrWs_ksrS_x47SQV   15156334232887875  image/jpeg 0  f20180111090619/j_4mxbEiVh.json    2990   Fpq-3yl3Yr1CadNrJVSDnpeRhQtT   15156331445226898  application/json   0  f20180111090619/j_i1K74768.json    3042   Fl5PpDw1TsZXMuhoq1RUrOeGZ6br   15156335067090003  application/json   0  f20180111095839/i_Q7KMKeda.png 518522 Fl-yB1_ruL2uxZN9k7DjB62h9dYH   15156359599713253  image/png  0  f20180111095839/j_5DpqHolV.json    184    FoYvi7cmSrzuVjUgCRzW5kU95SVo   15156359719719064  application/json   0  f20180111100442/i_No8kToIV.jpg 48975  Fu1cw3f--5Vpz9kLGeJfvljhCtyZ   15156364349642377  image/jpeg 0  f20180111100442/i_P1bkvSeg.jpg 68200  FvYe8vi46TjUKhEy_UwDqLhO6ZsW   15156363800690634  image/jpeg 0  f20180111100442/i_T1AulKcD.jpg 52641  Fj2YzvdC1n_1sF93ZZgrhF3OzOeY   15156364021186365  image/jpeg 0  f20180111100442/i_X8d8BN07.jpg 50770  FivwidMiHbogw77lqgkIKrgmF3eA   15156363969737156  image/jpeg 0  f20180111100442/i_g0wtOsCX.jpg 76656  Fmtixx0mP9CAUTNosjLuYQHL6k0P   15156363448222155  image/jpeg 0  f20180111100442/i_h5OT9324.jpg 72672  FvbIqPLTh2cQHTIBv2akUfahZa_Z   15156364401354652  image/jpeg 0  f20180111100442/i_he8iLYI6.jpg 49399  FjeJvwjwhU-hKZsq66UoBg9_tEJs   15156363907932480  image/jpeg 0  f20180111100442/i_kg29t7Pp.jpg 76293  FuYj__sSeEN7AsXMbxO24Z8Suh8d   15156364156384686  image/jpeg 0  f20180111100442/i_oz1YoBI1.jpg 75620  FkY3xsUMwOI01zgoH1iXXgiQeq6I   15156364089112904  image/jpeg 0  f20180111100442/i_xrOT98on.jpg 50021  Fql7ookM1Rc6V7VairKAfnKe-o9w   15156363856357316  image/jpeg 0  f20180111135114/i_Zqt8Tmoe.png 161629 FlELw59_mV3VqDBLyu1BKN4fIWnx   15156500155209863  image/png  0  f20180111135114/j_uhHoMXKq.json    159    FrypljwAr2LgoLAePBNTUYTUAgDt   15156500200488238  application/json   0  f20180111142119/i_s83iZ2GR.png 92278  Fns8tdh3JCkRmfE_COYEu4o8w03E   15156517082371259  image/png  0  f20180111142119/j_0g45JRth.json    159    Fq1rFwdRguYRXrp61nGZ5TsUG1V-   15156517143375596  application/json   0  f20180111144306/i_yE5TC84E.png 139230 Fjf61ymabEnEvnr5ZMHFjXGCrYlP   15156530038824150  image/png  0  f20180111144306/j_OF4WVtSH.json    159    FqwkKcxfo8jd0jFUyuH4X2CrnE9q   15156530083419530  application/json   0  f20180111150230/i_KtnER4g3.png 120044 FuwOWdrqzcr2-UScem-LzEMgMezs   15156541734892258  image/png  0  f20180111150230/j_xMSUEejY.json    158    FjJr_4deMqFphGaptm-2Pa6wwRP2   15156541771989216  application/json   0  f20180111151741/i_JuSWztB3.jpg 92506  FrIjRevHSi6xv4-NQa2wrHu5a1zQ   15156550875370965  image/jpeg 0  f20180111153550/i_9wWzVenl.gif 769872 FvslKY9JUaCQm-lu02E34tvAP_oG   15156561674621628  image/gif  0  '''

底下是具体代码:

#字符串切割方式
dict1 = {}
a = log.strip().split('\n') #按行切割字符串
for b in a:
    if b.split() == '':
        continue
    else:
        c = b.replace('.', '\t').split('\t')[1] #键值(类型)
        d = int(b.replace('.', '\t').split('\t')[2]) #文件大小
        if c in dict1:
            dict1[c] = dict1[c] + d
        else:
            dict1[c] = d
print(dict1)

#正则表达式
import re
p = re.compile(r'\.(.+?)F')
dict1={}
for one in p.findall(log):
     c = one.strip().split('\t')[0]
     d = int(one.strip().split('\t')[1])
     if c in dict1:
            dict1[c] = dict1[c] + d
     else:
            dict1[c] = d

2.请写一个程序## 找出 str1 中所有 str2 中不存在的人名,并且## 找出 str2 中所有 str1 中不存在的人名
str1 = '''
熊宁
杰益

王伟伟

青芳

玉琴
焦候涛
莫福
杨高旺
唐欢欢
韩旭
'''

str2 = '''
焦候涛 
熊宁 
玉琴 

骆龙 

韩旭 
杨高旺

杰益  

莫福  

伟伟

李福  
'''

底下是具体代码:

# 方式一:
a = []
b = []
for name1 in str1.split('\n'):
    if name1.split() == '':
        continue
    a.append(name1.strip())
for name2 in str2.split('\n'):
    if name2.split() == '':
        continue
    b.append(name2.strip())
c = set(a) - set(b)
print(c)
d = set(b) - set(a)
print(d)

# 方式二:
a = []
b = []
for name1 in str1.split('\n'):
    if name1.split() == '':
        continue
    a.append(name1.strip())
for name2 in str2.split('\n'):
    if name2.split() == '':
        continue
    b.append(name2.strip())
c = []
d = []
for name3 in a:
    if name3 in b:
        continue
    else:
        c.append(name3)
for name4 in b:
    if name4 in a:
        continue
    else:
        d.append(name4)
print(c)
print(d)

#方式三:
def fun1(*str_name):
    name_list = []
    for name in str_name:
        new_name = name.split('\n')
        name_list.append(new_name)

    new_name_dict = {}
    for idx, one in enumerate(name_list):
        # 求列表长度
        list_len = len(one)
    # 小列表的下标
        index = 0
        while index < list_len:
            if one[index] == '':
                 index += 1
                 continue
            else:
                if idx in new_name_dict:
                     new_name_dict[idx].append(one[index].strip())
                else:
                     new_name_dict[idx] = [one[index].strip()]
            index += 1
    c =[]
    d =[]
    for a in new_name_dict[0]:
        if a in new_name_dict[1]:
            continue
        else:
            c.append(a)
    for a in new_name_dict[1]:
        if a in new_name_dict[0]:
            continue
        else:
            d.append(a)


    print(c,d)
fun1(str1,str2)

3.取出下面字符串中的薪资,只包含数字,如:2,2.5,1.3,1.1,2.8,2.5
# 字符串方法:
d =[]
a = content.strip().split('\n')
for b in a :
    if b.split()=='':
        continue
    else:
        c = b.replace('区','万').split('万')
        d.append(c[1])
print(d)

#正则表达式
import re
p = re.compile(r'([\d.]+)万/每{0,1}月')
for one in p.findall(content):
    print(one)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值