Some reasons why you should use pure Python,
- By using Python, you have already made the assumption that Python and the standard libraries are installed. By using Bash code inside of Python you are making this assumption plus the assumption that Bash is installed and on the system path.
- By using a combination of two languages you are making the code more difficult for others to read (not everyone knows Python and Bash)
- If you do it the Python way it will feel more natural before long - less lines of code is not always better
In this case, I would use ...
import os
for filename in os.listdir('.'):
if filename.endswith('.ext'):
os.rename(filename, os.path.join('path', 'to', 'new', 'destination', filename))
There may be better ways though