尝试编写 Python 程序,获取作业文件的创建日期和学号 (没有学号就用原文件名代替),按日期排序,输出在终端里,用 TAB ('\t') 分隔
时间: 2024-10-04 12:04:04 浏览: 38
python分析作业提交情况
在Python中,你可以使用`os`模块来操作文件和目录,以及`datetime`模块处理日期信息。如果你需要获取文件的创建日期,Windows系统下可以使用`os.path.getctime()`函数,而在Unix-like系统(包括macOS和Linux)通常使用`stat.st_ctime`。这里是一个简单的示例程序:
```python
import os
from datetime import datetime
def get_info(file_path):
# 检查文件是否存在
if not os.path.exists(file_path):
return "File not found"
# 获取文件创建时间
try:
ctime = os.path.getctime(file_path)
except PermissionError:
return "Permission denied"
# 转换为日期对象
file_date = datetime.fromtimestamp(ctime)
# 如果有学号,读取并替换文件名;如果没有则使用文件名
student_id = None
try:
with open(file_path, 'r', encoding='utf-8') as f:
for line in f:
if line.startswith("Student ID:"):
student_id = line.split(":")[1].strip()
break
except FileNotFoundError:
pass
# 使用文件名作为默认学号或已获取的学号
name_with_id = file_path if student_id is None else f"{student_id}\t{file_path}"
# 返回日期、学号和文件路径
return f"{file_date.strftime('%Y-%m-%d')}\t{name_with_id}"
# 获取当前目录下的所有.txt文件,并按创建日期排序
files = sorted([f for f in os.listdir('.') if f.endswith('.txt')], key=lambda x: os.path.getctime(x))
# 打印结果
for i, file in enumerate(files, start=1):
info = get_info(file)
print(f"{i}\t{info}", end='\t' if i % 10 != 1 else '\n')
# 如果没有学号,则每10行换行
```
这个脚本会在当前目录下查找所有的`.txt`文件,获取它们的创建日期和(如果存在)学号,然后按照日期排序。注意,此脚本假设学号在文本文件的第一行并且名为"Student ID:"。如果不是这种情况,你需要修改解析学号的部分。
阅读全文