快好知 kuaihz

python文件读写及列表推导式应用示例

 

    上课演示CSV文件读写及列表推导式用到的例子,记录一下。

  列表推导式相当于循环,简洁方便,速度也不慢。

     设有文件visit2017.txt,是CSV格式,存有一年的读者刷卡入馆记录,文件很大,其中一条如下:

“145022187   “,”张无忌”,”学生”,”2工程系”,”2017/1/1 9:06:55”

 

例一:查看是否有姓"莫","蒲","仝"的同学

##import csv

##vs=open("D:图书馆读者visit2017.txt","r")

##rd=csv.reader(vs)

##print(type(rd))

##ls=list(rd)

##ls2=[i for i in ls if i[1][0] in ["莫","蒲","仝"]]

##ls3=["_".join(i[0:4]) for i in ls2]

##set1=set(ls3)

##for row in set1:

##    print(row)

 

#例二:统计某班(学号是1650151*)各位入馆次数

##import csv

##vs=open("D:图书馆读者visit2017.txt","r")

##rd=csv.reader(vs)

##ls=list(rd)

##ls2=[[i[0].strip(),i[1],i[4]] for i in ls if i[0][0:7]=="1650151"]

##counts={}#生成的是字典,不是集合

##for i in ls2:

##        counts[i[1]]=counts.get(i[1],0)+1  

            #get() "键"存在,返回"值",否则返回默认值0

##items=list(counts.items()) #返回键值对

##items.sort(key=lambda x:x[1],reverse=True)

##for i in items:

##        print(i[0],i[1])

#

 

###例三:生成某同学到馆时间区间(前后15秒),

##import csv

##from datetime import datetime

##vs=open("D:图书馆读者visit2017.txt","r")

##rd=csv.reader(vs)

###print(type(rd))

##ls=list(rd)

##ls2=[i for i in ls if i[1]=="张无忌"]

##ls3=[ [i[0].strip(),i[1],datetime.strptime(i[4],"%Y/%m/%d %H:%M:%S").timestamp()] for i in ls2]

#注意时间字符串和时间戳的转换

##ls4time=[[i[2]-15,i[2]+15] for i in ls3]  #前后15秒

##

##for row in ls4time:

##    print(row)

###写入文件

##with open("D:图书馆读者zab_time.txt","w") as fp:

##    for i in ls4time:

##        fp.writelines(str(i[0])+","+str(i[1])+"n")

 

###例四:某同学到馆时间和另一同学比,是否较一致

##import csv

##from datetime import datetime

##vs=open("D:图书馆读者visit2017.txt","r")

##rd=csv.reader(vs)

###print(type(rd))

##ls=list(rd)

##ls2=[i for i in ls if i[1]=="段誉"]

##ls3=[ [i[0].strip(),i[1],datetime.strptime(i[4],"%Y/%m/%d %H:%M:%S").timestamp()] for i in ls2]

##ls4time=[[i[2]-300,i[2]+300] for i in ls3] #前后5分钟

##

##lsm2=[i for i in ls if i[1]=="王语嫣"]

##lsm3=[datetime.strptime(i[4],"%Y/%m/%d %H:%M:%S").timestamp() for i in lsm2]

##s=0

##for i in lsm3:

##    for j in ls4time:

##        if j[0]<i<j[1]:

##            print(j[0],i,i-j[1],datetime.fromtimestamp(i).strftime("%Y/%m/%d %H:%M:%S") )

##            s+=1

##print(s)

 

           

#找和某同学访问时间一致的人

##import csv

##from datetime import datetime

##vs=open("D:图书馆读者visit2017.txt","r")

##rd=csv.reader(vs)

###print(type(rd))

##ls=list(rd)

##ls2=[i for i in ls if i[1]=="郭靖"]

##ls3=[ [i[0].strip(),i[1],datetime.strptime(i[4],"%Y/%m/%d %H:%M:%S").timestamp()] for i in ls2]

##ls4time=[[i[2]-30,i[2]+30] for i in ls3]

##xh=set([i[0] for i in ls])

##lsxh=list(xh)

##countls=[]

##for xh in lsxh:   #多重循环,运行时间稍长

##        lsm2=[i for i in ls if i[0]==xh]

##        lsm3=[datetime.strptime(i[4],"%Y/%m/%d %H:%M:%S").timestamp() for i in lsm2]

##        s=0

##        for i in lsm3:

##            for j in ls4time:

##                if j[0]<i<j[1]:

##                     s+=1

##        if s>8:

##            countls.append([xh,s])

##for i in countls:

##    print(i)

 查得郭靖经常和黄蓉一起进馆,大数据时代要保护好数据才能保护隐私。

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:推导  推导词条  示例  示例词条  读写  读写词条  文件  文件词条  应用  应用词条  
观点

 假如我是麦克斯韦妖

假如我是麦克斯韦妖---我的教学日志 蓝莲花瓣---假如我是麦克斯韦妖诞生的时候先伸伸腰肢睁开眼睛看看令人皱眉的物理是不是一个妖精可以不要思想?量子热机他们都向...(展开)