用python实现文件夹lab_6中存放着某班学生提交的一次实验报告,实验报告文件名中包含有学生的姓名、学号信息,格式如下"实验报告_实验6 Python文件与数据格式化(2040706165_姓名)(1).doc"。请用正则表达式获取学生姓名、学号存入CBC.csv中。 (提示: ① 共有35条记录,有一些文件命名未按规则; ② 以下代码可输出指定目录中的所有文件的名称
时间: 2024-02-03 18:15:45 浏览: 95
可以使用Python的os和re模块来实现该功能。以下是一个可能的实现:
```python
import os
import re
# 定义匹配规则
pattern = re.compile(r'实验报告_实验6 Python文件与数据格式化\((\d{10})_(.*?)\)\(\d+\)\.doc')
# 遍历文件夹
folder_path = './lab_6'
files = os.listdir(folder_path)
# 存储学生姓名和学号的列表
students = []
for file in files:
# 判断是否为doc文件
if os.path.splitext(file)[1] == '.doc':
# 进行正则匹配
match = pattern.match(file)
if match:
# 获取学号和姓名
student_id = match.group(1)
student_name = match.group(2)
# 存入列表
students.append((student_id, student_name))
# 将学生信息写入CSV文件
with open('CBC.csv', 'w') as f:
f.write('学号,姓名\n')
for student in students:
f.write('{},{}\n'.format(student[0], student[1]))
```
以上代码首先定义了一个正则表达式模式,用于匹配符合命名规则的文件名。然后遍历文件夹中的所有文件,对每个doc文件进行正则匹配,获取学号和姓名,并将其存入一个列表中。最后将学生信息写入CSV文件中。
阅读全文