网站API数据和CSV文件

自己写帖子录视频有个好处就是可以夹带私货,比如pythonabc基础教学视频里讲到图像处理时就用了一度迷得我五迷三道的精灵王的盛世美图:

文件读写那一节选用的示范文件里则夹带了我最爱的珍妮特的一段文字:

我会给你电话,我们一起生个火,喝点小酒,在属于我们的地方辨认彼此

别等待,别把故事留到后面讲

生命如此之短

这一片海和沙滩,这沙滩上的散步,在潮水将我们所做的一切吞噬之前。

我爱你

这是世上最难的三个字

可除此之外,我还能说什么?

——珍妮特.温森特《橘子不是唯一的水果》

而实际上当时我在那儿纠结了半天,因为还有海涅的一段诗我也很喜欢:

我用强劲有力的手从挪威的莽莽森林——
拨来最高的枞树,它高耸入云,
我把它插直——
埃特纳火山口,那里烈焰飞腾,
我用这饱蘸火焰的巨灵之笔——
在黑暗的天幕上写下我的心声:
“阿格纳斯,我爱你!”

——海涅《北海集》

我这种粗糙的理工女,语文不好,字认得也不多,在学习吸收能力最强的年纪严肃的文学历史哲学类书一本没看过。这是网上当吃瓜群众看人家八卦时,不知哪位大神甩出了大师们的一个“笔划”,内个惊叹、震撼、折服、膜拜呀!嗯……并没有去找原文来读,阳春白雪的玩意儿之于下里巴人,有个片段惊艳一下留个念想就够啦,嘿嘿。

这次写跟视频配的基础教程时写到CSV这节,决定再加个例子,然后就赶快追忆似水年华,借机致敬我大爱的发哥:

缅怀那段港片的黄金岁月:

看得涕泪横流的阿郎的故事:

那时真幼稚,一直问一起看的朋友,“你说,波波最后还爱阿郎么?”。我那朋友是个明白人,点评“爱不爱的……这个嘛……她爱波仔”,当时特不理解,“什么爱孩子,我是问她还爱不爱阿郎,要是阿郎不死能复合么?”。自己做了母亲后才理解:确实,什么爱不爱的,她爱孩子。看,当年入戏就是这么深

扯来扯去扯够了,终于可以扯点正题啦,第六、七届香港金像奖获奖名单的csv文件如下:

用程序把连续两届获奖人员的奖项、姓名和作品列出来,再列出只参加了第七届的人员名单:

import csv

f = open('6th.csv')      # 打开CSV文件

csv_f = csv.reader(f)    # 生成读对象

sixthAttendee = set()    # 存放得奖人员的集合变量初始化为空

sixthRecord = []         # 存放得奖记录的列表变量初始化为空

for row in csv_f:

# 一行一行地处理数据,每一行是一个列表,如['最佳编剧','罗启锐','秋天的童话']

     sixthAttendee.add(row[1])     # 把第六届的获奖人员加入进集合变量sixAttendee

     sixthRecord.append(row)       # 每一行作为一个元素放进列表变量sixthRecord 

f = open('7th.csv')        # 重复对6th.csv做的工作

csv_f = csv.reader(f)

seventhAttendee = set()

seventhRecord = []

for row in csv_f:

    seventhAttendee.add(row[1])

    seventhRecord.append(row)

# 到这里两届的参会人员姓名分别放入两个集合变量:sixthAttendee,seventhAttendee

second_year_attendees = seventhAttendee.difference(sixthAttendee)

# 集合对象的方法函数difference()返回集合,集合里的元素在seventhAttendee,不在sixthAttendee

same_attendees = seventhAttendee.intersection(sixthAttendee)

# 集合对象的方法函数intersection()返回两个集合的交集,集合的元素是两个集合都有的名字

if '' in same_attendees: same_attendees.remove('')

# 注意看每个csv的第一条记录:['最佳电影','','秋天的童话']和['最佳电影','','英雄本色'],第二个元素都是'',所以''会出现在集合same_attendees内,这条语句就是把''从集合里清除出去 

print("连续参加六、七两届金像奖人员和获奖作品:")

for name in same_attendees:     # 挨个名字判断

    print(name, end=':')        # 不指定end=参数,默认是用回车

    for item in sixthRecord + seventhRecord:     

    # 遍历两届金像奖的获奖记录

        if item[1] == name:     # 查看获奖记录的名字item[1]

            print(item[2], end='\t')   # 打印获奖作品

    print()

print("\n只参加第七届的演职人员名单:")

for name in second_year_attendees:

    if '、' in name:    # 处理‘戴乐伟、黄霑’这种情况

        for i in name.split('、'):

            print(i, end='\t')

    else:

       print(name, end='\t')

运行结果:

连续参加六、七两届金像奖人员和获奖作品:

周润发:英雄本色  龙虎风云   

金燕玲:地下情   人民英雄   

只参加第七届的演职人员名单:

奚仲文  梁朝伟  蒋国权  林国斌  萧芳芳  戴乐民  黄霑   钟志文  James Hayman   成家班   罗启锐  叶倩文  林岭东