Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is the purpose of the os.path module in Python?
The os.path module helps manage and manipulate file paths in a way that works across different operating systems.
Click to reveal answer
beginner
How do you join directory names and filenames into a full path safely?
Use os.path.join() to combine parts of a path. It adds the right separators for your operating system.
Click to reveal answer
beginner
What does os.path.exists(path) check?
It checks if the file or directory at path actually exists on your computer.
Click to reveal answer
intermediate
Explain the difference between os.path.abspath() and os.path.relpath().
os.path.abspath() gives the full absolute path from the root, while os.path.relpath() gives the path relative to another directory.
Click to reveal answer
intermediate
What is the modern recommended way to handle file paths in Python 3.4+?
Use the pathlib module, which provides an easy and clear object-oriented way to work with file paths.
Click to reveal answer
Which function joins parts of a file path correctly across operating systems?
Aos.path.join()
Bos.path.split()
Cos.path.exists()
Dos.path.abspath()
✗ Incorrect
os.path.join() safely combines path parts using the right separator for the OS.
What does os.path.exists('file.txt') return if 'file.txt' is not found?
ARaises an error
BTrue
CFalse
DNone
✗ Incorrect
os.path.exists() returns False if the file or directory does not exist.
Which module provides an object-oriented way to handle file paths?
Apathlib
Bsys
Cos.path
Dshutil
✗ Incorrect
pathlib offers classes to work with paths in a clear and modern way.
What does os.path.abspath('file.txt') return?
AThe relative path to 'file.txt'
BThe parent directory path
CThe filename only
DThe absolute full path to 'file.txt'
✗ Incorrect
os.path.abspath() returns the full absolute path from the root to the file.
Which function splits a path into directory and filename?
Aos.path.join()
Bos.path.split()
Cos.path.exists()
Dos.path.relpath()
✗ Incorrect
os.path.split() separates a path into the directory part and the filename.
Describe how to safely combine folder names and filenames into a full path in Python.
Think about how to avoid errors with slashes on Windows vs Linux.
You got /3 concepts.
Explain the benefits of using pathlib over os.path for file path handling.
Consider how pathlib uses objects instead of strings.
You got /4 concepts.
Practice
(1/5)
1. Which Python module is recommended for safe and easy file path handling?
easy
A. pathlib
B. os.path
C. sys
D. math
Solution
Step 1: Identify the module for file paths
The pathlib module provides an easy and modern way to handle file paths safely.
Step 2: Compare with other modules
While os.path also handles paths, pathlib is recommended for its simplicity and object-oriented approach.
Final Answer:
pathlib -> Option A
Quick Check:
File path handling = pathlib [OK]
Hint: Remember: pathlib is the modern way to handle paths [OK]
Common Mistakes:
Confusing pathlib with os.path
Using sys for paths
Choosing unrelated modules like math
2. Which of the following is the correct way to join paths using pathlib in Python?
easy
A. Path('folder') + 'file.txt'
B. Path('folder') / 'file.txt'
C. Path('folder').join('file.txt')
D. Path('folder').append('file.txt')
Solution
Step 1: Understand pathlib path joining
In pathlib, the slash operator / is overloaded to join paths safely.
Step 2: Check each option
Path('folder') / 'file.txt' uses / correctly. Path('folder') + 'file.txt' uses + which is invalid. The .append() and .join() methods do not exist on Path objects.
Final Answer:
Path('folder') / 'file.txt' -> Option B
Quick Check:
Use slash (/) to join paths [OK]
Hint: Use / operator to join pathlib paths [OK]
Common Mistakes:
Using + to join paths
Calling non-existent join or append methods
Forgetting to import pathlib
3. What will be the output of this code?
from pathlib import Path
p = Path('folder') / 'subfolder' / 'file.txt'
print(p.parts)
medium
A. ('folder/subfolder/file.txt',)
B. ['folder', 'subfolder', 'file.txt']
C. ['folder/subfolder/file.txt']
D. ('folder', 'subfolder', 'file.txt')
Solution
Step 1: Understand Path.parts attribute
The parts attribute returns a tuple of each part of the path as separate strings.
Step 2: Analyze the given path
The path is 'folder/subfolder/file.txt', so parts will be ('folder', 'subfolder', 'file.txt').
Final Answer:
('folder', 'subfolder', 'file.txt') -> Option D
Quick Check:
Path.parts returns tuple of path parts [OK]
Hint: Path.parts returns a tuple of path components [OK]
Common Mistakes:
Expecting a list instead of tuple
Getting full path as one string
Confusing parts with name or stem
4. What is wrong with this code snippet?
from pathlib import Path
p = Path('folder') + 'file.txt'
print(p)
medium
A. Using + operator to join paths causes TypeError
B. Missing import statement for os module
C. Path object cannot be printed directly
D. The path string should use backslashes instead of forward slashes
Solution
Step 1: Check path joining method
The code uses + operator to join a Path object and a string, which is not supported and raises a TypeError.
Step 2: Verify other options
Import is correct, Path objects can be printed, and forward slashes are valid on most systems.
Final Answer:
Using + operator to join paths causes TypeError -> Option A
Quick Check:
Use /, not +, to join pathlib paths [OK]
Hint: Never use + to join pathlib paths; use / instead [OK]
Common Mistakes:
Using + operator for path joining
Thinking Path can't be printed
Confusing path separators
5. You want to check if a file named data.csv exists inside a folder reports before reading it. Which code correctly does this using pathlib?
hard
A. p = Path('reports') + 'data.csv'
if p.is_file():
print('File found')
B. p = 'reports/data.csv'
if os.path.exists(p):
print('File found')
C. p = Path('reports') / 'data.csv'
if p.exists():
print('File found')
D. p = Path('reports/data.csv')
if p.is_dir():
print('File found')
Solution
Step 1: Create path using pathlib and join correctly
p = Path('reports') / 'data.csv'
if p.exists():
print('File found') uses Path('reports') / 'data.csv' which correctly joins folder and file.
Step 2: Check if file exists
p = Path('reports') / 'data.csv'
if p.exists():
print('File found') uses p.exists() to check if the file exists before reading, which is correct.
Final Answer:
p = Path('reports') / 'data.csv'\nif p.exists():\n print('File found') -> Option C
Quick Check:
Use pathlib with / and exists() to check files [OK]
Hint: Use Path(...) / filename and exists() to check files [OK]
Common Mistakes:
Using + to join paths
Using os.path without import
Checking is_dir() instead of exists() or is_file()