Skip to content

Instantly share code, notes, and snippets.

@acheong08
Last active May 17, 2023 00:59
Show Gist options
  • Save acheong08/0f9049d775ac437fa9ce3b6fc5796717 to your computer and use it in GitHub Desktop.
Save acheong08/0f9049d775ac437fa9ce3b6fc5796717 to your computer and use it in GitHub Desktop.
Delete files recursively. I used this to delete all Spanish/German copies of text from my past papers archive.
import os
import fnmatch
import sys
def delete_files(patterns, directory="."):
if len(patterns) == 0:
print("No patterns specified.")
sys.exit(1)
if not os.path.isdir(directory):
print(f"Directory {directory} does not exist.")
sys.exit(1)
for root, dirs, files in os.walk(directory):
for name in files:
for pat in patterns:
if pat in name:
try:
os.remove(os.path.join(root, name))
print(f"File {os.path.join(root, name)} has been deleted.")
except OSError as e:
print(f"Error: {e.filename} - {e.strerror}.")
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: delete_files.py patterns")
sys.exit(1)
patterns = sys.argv[1:]
delete_files(patterns)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment