简体   繁体   中英

delete all files except .parquet files from all folders in windows file system using python

i want to delete all the files from all the folders iteratively using python in windows filesystem where i need to keep only.parquet files and remove all other files ending with.crc,.bak etc.,

The problem is i have folders like files1,files2,files3... files100 folders and i have to remove all other.bak,.crc etc., files from all the folders and just keep.parquet files,can anyone help me on this please i tried this

mydir='c/users/name/files'
for f in os.listdir(mydir):
    if f.endswith(".parquet"):
        continue
    os.remove(os.path.join(mydir, f))
import os

def getListOfFiles(dirName):
# create a list of file and sub directories 
# names in the given directory 
    listOfFile = os.listdir(dirName)
    allFiles = list()
# Iterate over all the entries
    for entry in listOfFile:
    # Create full path
    fullPath = os.path.join(dirName, entry)
    # If entry is a directory then get the list of files in this directory 
    if os.path.isdir(fullPath):
        allFiles = allFiles + getListOfFiles(fullPath)
    else:
        allFiles.append(fullPath)
            
return allFiles

## select only files in all dirr
onlyfiles = getListOfFiles("C:/Users")
index_dot = 0
to_delete = []
to_keep = ["parquet"] #list of format to keep

for name in onlyfiles:
    for l in range(len(name)):
        if name[l] == '.':
            index_dot = l
format_file = len(name)-index_dot-1

if name[-format_file:] not in to_keep:
    to_delete.append(name)



for to_del in to_delete:
    os.remove(to_del)

Don't forget to modify this line:

onlyfiles = getListOfFiles("C:/Users")

Becare full with this code, you could delete lot of files by mistake

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM