绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
盘点一个Python网络爬虫实战问题
2023-07-04 17:15:31

前言

前几天一道关于大学生Python题目的问题,如下图所示。



初步一看,还是觉得有点难的,对于刚学完基础的小伙伴来说,这个小项目还是有点难度,这个题目主要考察的是random库、列表、字典、open文件操作等基础操作,运用实际生活中的例子,确实是一个练手的好题目。

一、思路

其实问题的关键点就是在于构造姓名,学号和成绩,之后以字典的形式进行写入文件。这里准备两个列表,一个姓,一个名,之后使用random库进行随机字符串拼接,得到姓名。

二、解决方法

1)TXT文件存储

直接上代码,如下所示:

# !/usr/bin/env python
# -*- coding:utf-8 -*-
# @FileName  :test.py
# @Time      :2021/9/19 21:34
# @Author    :Cat


import random


xing = ['赵','钱','孙','李','周','吴','郑','王',
'冯','陈','褚','卫','蒋','沈','韩','杨',
'朱','秦','尤','许','何','吕','施','张',
'孔','曹','严','华','金','魏','陶','姜',
'戚','谢','邹','喻','柏','水','窦','章',
'云','苏','潘','葛','奚','范','彭','郎',
'鲁','韦','昌','马','苗','凤','花','方',
'俞','任','袁','柳','酆','鲍','史','唐',
'费','廉','岑','薛','雷','贺','倪','汤',
'滕','殷','罗','毕','郝','邬','安','常',
'乐','于','时','傅','皮','卞','齐','康',
'伍','余','元','卜','顾','孟','平','黄',
'和','穆','萧','尹','姚','邵','湛','汪',
'祁','毛','禹','狄','米','贝','明','臧',
'计','伏','成','戴','谈','宋','茅','庞',
'熊','纪','舒','屈','项','祝','董','梁',]


ming = [
       '凡','佳','勤','珍','贞','鸿','焕','风','朗',
    '浩','亮','政','谦','振','壮','伟','刚','勇','毅','俊','峰','强','军','平','保','东','文','辉','力','固','之','段','殿','泰',
'利','清','飞','彬','富','顺','信','子','杰','涛','昌','成','康','星','翰','诚','博','先','敬',
'若','鸣','朋','斌','梁','栋','维','启','克','伦','翔','旭','鹏','泽','朗','伯','彪','晋','晟',
'诚','先','敬','震','振','壮','会','思','群','豪','心','邦','承','乐','宏','言','旲','旻','昊',
'光','天','达','安','岩','中','茂','进','林','有','坚','和','彪','博','泰','盛','振','挺','掣',
'明','永','健','世','广','志','义','兴','良','海','山','仁','波','宁','行','时','志','忠','思',
'绍','功','松','善','厚','庆','磊','民','友','裕','河','哲','江','超','炎','德','彰','征','律',
'晨','辰','士','以','建','家','致','煜','煊','炎','波','宁','贵','福','生','龙','元','全','国',
'胜','学','祥','才','发','武','新','利','清','飞','彬','富','顺','信','子','杰','涛','昌','成',
'康','星','光','天','达','安','岩','中','茂','进','林','有','坚','和'
]




with open('students.txt', 'a', encoding='utf-8') as f:
    for i in range(9):
        item = {}
        item['姓名'] = random.choice(xing) + random.choice(ming)
        item['学号'] = str(2020010001 + i)
        item['成绩'] = random.randint(0, 100)
        f.write(str(item))
        f.write('\n')

运行之后,得到的结果如下所示:



2)CSV文件存储

代码如下所示:

# !/usr/bin/env python
# -*- coding:utf-8 -*-
# @FileName  :test_csv.py
# @Time      :2021/9/26 21:01
# @Author    :Cat


import random
import csv




headers = ['姓名', '学号', '成绩']


xing = ['赵','钱','孙','李','周','吴','郑','王',
'冯','陈','褚','卫','蒋','沈','韩','杨',
'朱','秦','尤','许','何','吕','施','张',
'孔','曹','严','华','金','魏','陶','姜',
'戚','谢','邹','喻','柏','水','窦','章',
'云','苏','潘','葛','奚','范','彭','郎',
'鲁','韦','昌','马','苗','凤','花','方',
'俞','任','袁','柳','酆','鲍','史','唐',
'费','廉','岑','薛','雷','贺','倪','汤',
'滕','殷','罗','毕','郝','邬','安','常',
'乐','于','时','傅','皮','卞','齐','康',
'伍','余','元','卜','顾','孟','平','黄',
'和','穆','萧','尹','姚','邵','湛','汪',
'祁','毛','禹','狄','米','贝','明','臧',
'计','伏','成','戴','谈','宋','茅','庞',
'熊','纪','舒','屈','项','祝','董','梁',]


ming = [
       '凡','佳','勤','珍','贞','鸿','焕','风','朗',
    '浩','亮','政','谦','振','壮','伟','刚','勇','毅','俊','峰','强','军','平','保','东','文','辉','力','固','之','段','殿','泰',
'利','清','飞','彬','富','顺','信','子','杰','涛','昌','成','康','星','翰','诚','博','先','敬',
'若','鸣','朋','斌','梁','栋','维','启','克','伦','翔','旭','鹏','泽','朗','伯','彪','晋','晟',
'诚','先','敬','震','振','壮','会','思','群','豪','心','邦','承','乐','宏','言','旲','旻','昊',
'光','天','达','安','岩','中','茂','进','林','有','坚','和','彪','博','泰','盛','振','挺','掣',
'明','永','健','世','广','志','义','兴','良','海','山','仁','波','宁','行','时','志','忠','思',
'绍','功','松','善','厚','庆','磊','民','友','裕','河','哲','江','超','炎','德','彰','征','律',
'晨','辰','士','以','建','家','致','煜','煊','炎','波','宁','贵','福','生','龙','元','全','国',
'胜','学','祥','才','发','武','新','利','清','飞','彬','富','顺','信','子','杰','涛','昌','成',
'康','星','光','天','达','安','岩','中','茂','进','林','有','坚','和'
]




with open('students.csv', 'a', encoding='utf-8', newline='') as f:
    csv_writer = csv.DictWriter(f, headers)
    csv_writer.writeheader()


    for i in range(9):
        item = {}
        item['姓名'] = random.choice(xing) + random.choice(ming)
        item['学号'] = str(2020010001 + i)
        item['成绩'] = random.randint(0, 100)
        csv_writer.writerow(item)

运行之后,得到的结果如下所示:



每次运行程序之后,得到的txt和csv文件中的内容都是随机获取的,完成需求。

三、总结

本文基于粉丝提问,完成了一道Python基础实战题目,主要涉及的知识点是random库、列表、字典、文件读取等知识。这个题目倒不是很难,解题方法肯定还有很多种,还有可以把名字随机变成三个字等。欢迎大家积极尝试,有好方法记得也分享给我学习下噢!


分享好友

分享这个小栈给你的朋友们,一起进步吧。

Python
创建时间:2022-03-24 18:22:54
本小栈包含:Python基本教程 ,数据库基本教程,Python全栈,爬虫。以及Python的电子书分享等
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • 崔浩月1
    栈主

小栈成员

查看更多
  • Will9041
  • LCR_
  • updownup
戳我,来吐槽~