急求python 代码题,求求!!!

拆分中国人姓名中的姓氏和名字

要求:

1、使用Python程序生成名为"stuinfo.csv"的csv文件(300条以上的记录),用于生成下一步操作用的测

试数据。

2、将"stuinfo.csv"文件中的姓名保存到名为“stuname.xlsx”的Excel文件中,Excel工作表中的第1列是

姓,第二列是名

csv文件内容示例:Excel文件内容示例:

序号姓名姓名

202001李四李四

202002范徐春明范徐春明

202003张国林张国林

……………………

3、定义一个名为函数split_ch_name,用来拆分姓名中的姓和名

特别注意:

生成姓名时,

姓名假设是2-4个汉字

2个、3个汉字的姓名,第一个字是姓,其余是名

4个汉字的姓名,第1和第2个字是姓,其余是名

函数的返回结果可以是两个或两个以上的表达式

涉及的内容:

1、csv文件的读和写,序号和姓名中用英文“,”隔开。

2、Excel文件的写(用openpyxl库)和工作簿的保存

3、函数的定义,用return来返回函数的结果


# 导入相关库
import csv
import xlwt
# 创建csv文件
with open('stuinfo.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(['序号', '姓名'])
    writer.writerow(['202001', '李四'])
    writer.writerow(['202002', '范徐春明'])
    writer.writerow(['202003', '张国林'])
# 创建Excel文件
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('stuname')
sheet.write(0, 0, '姓')
sheet.write(0, 1, '名')
# 读取csv文件
with open('stuinfo.csv', 'r') as csvfile:
    reader = csv.reader(csvfile)
    for i, row in enumerate(reader):
        if i == 0:
            continue
        name = row[1]
        surname = name[0]
        givenname = name[1:]
        sheet.write(i, 0, surname)
        sheet.write(i, 1, givenname)
# 保存Excel文件
workbook.save('stuname.xlsx')

def split_ch_name(name):
    # 判断姓名的长度
    if len(name) == 2:
        # 将姓名拆分为姓和名
        surname = name[0]
        given_name = name[1]
    elif len(name) == 3:
        # 将姓名拆分为姓和名
        surname = name[0]
        given_name = name[1:]
    elif len(name) == 4:
        # 将姓名拆分为姓和名
        surname = name[0:2]
        given_name = name[2:]
    else:
        # 如果姓名长度不符合要求,则返回None
        return None
    # 返回拆分后的姓和名
    return surname, given_name