In Python, handling file paths is a very common task in daily development. Although the <span>os.path</span> module has long been the preferred tool for handling paths, the introduction of the <span>pathlib</span> module in Python 3.4 has made path handling more intuitive and modern. Today, we will explore 6 path handling techniques and see if <span>os.path</span> is really outdated.
1. Use <span>pathlib</span> Instead of <span>os.path</span>
<span>pathlib</span> module provides an object-oriented way of handling paths, which is more intuitive than <span>os.path</span>. For example, creating a path object and getting the file name:
from pathlib import Path
# Create a path object
path = Path("/usr/local/bin/python3")
# Get the file name
print(path.name) # Output: python3
<span>pathlib</span>‘s <span>Path</span> class encapsulates path operations, making the code more concise and readable.
2. Path Concatenation
In <span>os.path</span>, we use <span>os.path.join</span> to concatenate paths. In <span>pathlib</span>, we can directly use the <span>/</span> operator:
from pathlib import Path
# Path concatenation
new_path = Path("/usr/local") / "bin" / "python3"
print(new_path) # Output: /usr/local/bin/python3
This method is more intuitive and reduces code complexity.
3. Get Parent Directory
In <span>os.path</span>, we use <span>os.path.dirname</span> to get the parent directory. In <span>pathlib</span>, we can directly use the <span>.parent</span> property:
from pathlib import Path
# Get parent directory
path = Path("/usr/local/bin/python3")
print(path.parent) # Output: /usr/local/bin
This method is more concise and easier to understand.
4. Check if Path Exists
In <span>os.path</span>, we use <span>os.path.exists</span> to check if a path exists. In <span>pathlib</span>, we can directly use the <span>.exists()</span> method:
from pathlib import Path
# Check if path exists
path = Path("/usr/local/bin/python3")
print(path.exists()) # Output: True or False
This method is more object-oriented and makes the code clearer.
5. Get File Extension
In <span>os.path</span>, we use <span>os.path.splitext</span> to get the file extension. In <span>pathlib</span>, we can directly use the <span>.suffix</span> property:
from pathlib import Path
# Get file extension
path = Path("/usr/local/bin/python3.9")
print(path.suffix) # Output: .9
This method is more intuitive and reduces code complexity.
6. Iterate Through Directory
In <span>os.path</span>, we use <span>os.walk</span> to iterate through directories. In <span>pathlib</span>, we can directly use the <span>.iterdir()</span> method:
from pathlib import Path
# Iterate through directory
path = Path("/usr/local/bin")
for item in path.iterdir():
print(item)
This method is more concise and easier to understand.
Practical Case: Batch Rename Files
Suppose we have a directory with many <span>.txt</span> files, and we need to rename them to <span>.md</span> files. We can use <span>pathlib</span> to achieve this:
from pathlib import Path
# Define directory path
directory = Path("/path/to/your/directory")
# Iterate through all files in the directory
for file_path in directory.iterdir():
if file_path.suffix == ".txt":
# Rename file
new_file_path = file_path.with_suffix(".md")
file_path.rename(new_file_path)
print(f"Renamed {file_path} to {new_file_path}")
This case demonstrates how to use <span>pathlib</span> to handle actual file operation tasks, with concise and understandable code.
Conclusion
This article introduced 6 techniques for handling paths using <span>pathlib</span>, including path concatenation, getting the parent directory, checking if a path exists, getting file extensions, and iterating through directories. Through these techniques, we can see that <span>pathlib</span> is more intuitive and modern than <span>os.path</span> for path handling. Although <span>os.path</span> is still usable, <span>pathlib</span> is undoubtedly the better choice for new projects.
That’s all for today’s sharing! If you have any specific Python topics you would like to learn about, or if you have any questions about this article, feel free to leave a comment below ✍️ — your feedback is an important reference for my next sharing! If you found this article helpful, don’t forget to give it a ♥️ like | ↗️ share | 👀 view as a three-way support! See you next time!
Collection/Recommended Articles
Basics of Python Programming
Python Office Automation – Excel
WeChat Public Account Batch Upload and Release System
End of Article Benefits
Reply “programming materials” in the WeChat public account message window to get 100+ high-quality e-books on Python programming, artificial intelligence, web scraping, etc.