用python语言写一段代码2 批量生成随机信息存入CSV文件 批量生成50个人的随机信息,包括姓名,性别、年龄和成绩等。( 提示:c=chr(random.randint(65, 90))可以生成随机大写英文) 1)把生成的信息写入csv文件info.csv。 2)读取info.csv文件,将每一个不及格(成绩小于60)的同学信息存放在以该同学姓名命名的文件中,这些文件使用dat作为扩展名
时间: 2023-06-11 10:08:22 浏览: 126
以下是Python代码实现:
```python
import random
import csv
# 生成随机姓名
def generate_name():
family_names = ['赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱', '秦', '尤', '许', '何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶', '姜', '戚', '谢', '邹', '喻', '柏', '水', '窦', '章', '云', '苏', '潘', '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳', '酆', '鲍', '史', '唐', '费', '廉', '岑', '薛', '雷', '贺', '倪', '汤', '滕', '殷', '罗', '毕', '郝', '邬', '安', '常', '乐', '于', '时', '傅', '皮', '卞', '齐', '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄', '和', '穆', '萧', '尹', '姚', '邵', '湛', '汪', '祁', '毛', '禹', '狄', '米', '贝', '明', '臧', '计', '伏', '成', '戴', '谈', '宋', '茅', '庞', '熊', '纪', '舒', '屈', '项', '祝', '董', '梁']
given_names = ['伟', '芳', '娜', '秀英', '敏', '静', '丽', '强', '磊', '军', '洋', '勇', '艳', '杰', '娟', '涛', '明', '超', '亮', '婷', '辉', '平', '鹏', '霞', '刚', '桂英', '桂芳', '建华', '玉兰', '欣', '桂林', '小红', '建国', '建军', '玉华', '晶', '玉珍', '国强', '文静', '建平', '玉梅', '欢', '瑞', '凯', '丹', '国平', '建设', '国庆', '琴']
return random.choice(family_names) + random.choice(given_names)
# 生成随机性别
def generate_gender():
return random.choice(['男', '女'])
# 生成随机年龄
def generate_age():
return random.randint(18, 25)
# 生成随机成绩
def generate_score():
return random.randint(0, 100)
# 批量生成随机信息
def batch_generate_info(num):
info_list = [['姓名', '性别', '年龄', '成绩']]
for i in range(num):
name = generate_name()
gender = generate_gender()
age = generate_age()
score = generate_score()
info_list.append([name, gender, age, score])
return info_list
# 将信息写入csv文件
def write_to_csv(info_list, filename):
with open(filename, 'w', newline='') as file:
writer = csv.writer(file)
for row in info_list:
writer.writerow(row)
# 读取csv文件并将不及格同学信息存入以姓名命名的dat文件中
def read_csv_and_save_dat():
with open('info.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
name = row[0]
score = int(row[3])
if score < 60:
with open(f'{name}.dat', 'a') as dat_file:
dat_file.write(f'姓名:{name},性别:{row[1]},年龄:{row[2]},成绩:{row[3]}\n')
# 批量生成随机信息并写入csv文件
info_list = batch_generate_info(50)
write_to_csv(info_list, 'info.csv')
# 读取csv文件并将不及格同学信息存入以姓名命名的dat文件中
read_csv_and_save_dat()
```
以上代码会在当前目录下生成一个`info.csv`文件,同时根据不及格同学生成以姓名命名的dat文件。
阅读全文