Student Database Skill
This skill provides tools for processing student database:
- •Grade calculation: Calculate student grades from scores
- •Duplicate name finder: Find duplicate names in database
- •Filter by recommendation: Find students by recommendation grade
- •Filter by TOEFL: Find students by TOEFL score threshold
Important Notes
- •Do not use other bash commands: Do not attempt to use general bash commands or shell operations like cat, ls.
- •Use relative paths: Use paths relative to the working directory (e.g.,
./student_database).
I. Skills
1. Grade-Based Score
Calculate student grades from student database and generate output files.
Features
- •Read all basic_info.txt files from student folders
- •Extract chinese, math, english scores
- •Calculate grades: A(90+), B(80-89), C(70-79), D(60-69), F(<60)
- •Generate student_grades.csv and grade_summary.txt
Example
python gradebased_score.py ./student_database # Specify output directory python gradebased_score.py ./student_database --output-dir ./output
Output Files
- •student_grades.csv: student_id, name, chinese_score, chinese_grade, math_score, math_grade, english_score, english_grade
- •grade_summary.txt: Total students, A/B/C/D/F counts per subject, pass/fail counts
2. Duplicate Name Finder
Find duplicate names in student database.
Features
- •Scan all student folders
- •Extract names from basic_info.txt
- •Identify names that appear more than once
- •Generate namesake.txt
Example
python duplicate_name.py ./student_database # Specify output file python duplicate_name.py ./student_database --output ./namesake.txt
Output Format
name: xxx count: xxx ids: xxx, xxx, ... name: yyy count: yyy ids: yyy, yyy, ...
3. Filter by Recommendation Grade
Find students with specified grade(s) from recommendation_letter.txt files.
Features
- •Filter by single grade (S, A, B, C, D, F) or multiple grades (e.g., SA for S or A)
- •Returns list of matching student folder names
Example
# Filter students with grade S python filter_by_recommendation.py ./student_database S # Filter students with grade A python filter_by_recommendation.py ./student_database A # Filter students with grade S OR A python filter_by_recommendation.py ./student_database SA
4. Filter by TOEFL Score
Find students with TOEFL score >= a specified threshold.
Features
- •Reads TOEFL score from basic_info.txt in each student folder
- •Filter by minimum score threshold
- •Returns list of matching student folder names
Example
# Find students with TOEFL >= 100 python filter_by_toefl.py ./student_database 100 # Find students with TOEFL >= 90 python filter_by_toefl.py ./student_database 90
II. Basic Tools (FileSystemTools)
Below are the basic tool functions. These are atomic operations for flexible combination.
Prefer Skills over Basic Tools: When a task matches one of the Skills above, use the corresponding Skill instead of Basic Tools. Skills are more efficient because they can perform batch operations in a single call.
Note: Code should be written without line breaks.
How to Run
# Standard format
python run_fs_ops.py -c "await fs.read_text_file('./file.txt')"
File Reading Tools
read_text_file(path, head=None, tail=None)
Use Cases:
- •Read complete file contents
- •Read first N lines (head) or last N lines (tail)
Example:
python run_fs_ops.py -c "await fs.read_text_file('./data/file.txt')"
read_multiple_files(paths)
Use Cases:
- •Read multiple files simultaneously
Example:
python run_fs_ops.py -c "await fs.read_multiple_files(['./a.txt', './b.txt'])"
File Writing Tools
write_file(path, content)
Use Cases:
- •Create new files with short, simple content only
- •Overwrite existing files
⚠️ Warning: Do NOT include triple backticks (```) in the content, as this will break command parsing.
Example:
python run_fs_ops.py -c "await fs.write_file('./new.txt', 'Hello World')"
edit_file(path, edits)
Use Cases:
- •Make line-based edits to existing files
Example:
python run_fs_ops.py -c "await fs.edit_file('./file.txt', [{'oldText': 'foo', 'newText': 'bar'}])"
Directory Tools
create_directory(path)
Use Cases:
- •Create new directories (supports recursive creation)
Example:
python run_fs_ops.py -c "await fs.create_directory('./new/nested/dir')"
list_directory(path)
Use Cases:
- •List all files and directories in a path
Example:
python run_fs_ops.py -c "await fs.list_directory('.')"
list_files(path=None, exclude_hidden=True)
Use Cases:
- •List only files in a directory
Example:
python run_fs_ops.py -c "await fs.list_files('./data')"
File Operations
move_file(source, destination)
Use Cases:
- •Move or rename files/directories
Example:
python run_fs_ops.py -c "await fs.move_file('./old.txt', './new.txt')"
search_files(pattern, base_path=None)
Use Cases:
- •Search for files matching a glob pattern
Example:
python run_fs_ops.py -c "await fs.search_files('*.txt')"
File Information
get_file_info(path)
Use Cases:
- •Get detailed metadata (size, created, modified, etc.)
Example:
python run_fs_ops.py -c "await fs.get_file_info('./file.txt')"
get_file_size(path)
Use Cases:
- •Get file size in bytes
Example:
python run_fs_ops.py -c "await fs.get_file_size('./file.txt')"
get_file_ctime(path) / get_file_mtime(path)
Use Cases:
- •Get file creation/modification time
Example:
python run_fs_ops.py -c "await fs.get_file_mtime('./file.txt')"
get_files_info_batch(filenames, base_path=None)
Use Cases:
- •Get file information for multiple files in parallel
Example:
python run_fs_ops.py -c "await fs.get_files_info_batch(['a.txt', 'b.txt'], './data')"