任务三:使用代码将C盘下521寝室处理后文档中格式化所有txt文件的文件名,文件名格式化为班级-学号(后两位)-姓名。如果学号是完全学号的截取完全学号。
时间: 2024-05-10 15:18:26 浏览: 4
以下是Python代码实现:
```python
import os
# 获取C盘下所有txt文件路径
file_list = []
for root, dirs, files in os.walk("C:/"):
for file in files:
if file.endswith(".txt"):
file_list.append(os.path.join(root, file))
# 循环处理每个txt文件
for file_path in file_list:
# 获取文件名和后缀
file_name = os.path.basename(file_path)
file_ext = os.path.splitext(file_name)[1]
# 解析学号和姓名
name = ""
std_id = ""
segments = file_name.split('-')
if len(segments) == 3:
# 学号为完整学号
std_id = segments[1]
name = segments[2].replace(file_ext, "")
elif len(segments) == 2:
# 学号为后两位
std_id = segments[0][-2:] + segments[1]
name = segments[0].replace(file_ext, "")
else:
# 文件名不符合规范,跳过
continue
# 构造新文件名
new_file_name = "{}-{}-{}{}".format("521", std_id, name, file_ext)
# 重命名文件
os.rename(file_path, os.path.join(os.path.dirname(file_path), new_file_name))
print("Done!")
```
上述代码会遍历 C 盘下的所有 txt 文件,从文件名中解析出学号和姓名,并将文件名格式化为班级-学号(后两位)-姓名的格式,最后将文件重命名。如果学号是完整的学号,则直接使用完整学号;如果学号是后两位,则将后两位和班级号拼接。注意,如果文件名不符合规范,则会被跳过。