Last active
May 17, 2023 00:59
-
-
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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