user10660670
user10660670

Reputation:

How can I delete multiple files using a Python script?

I am playing around with some python scripts and I ran into a problem with the script I'm writing. It's supposed to find all the files in a folder that meets the criteria and then delete it. However, it finds the files, but at the time of deleting the file, it says that the file is not found.

This is my code:

import os
for filename in os.listdir('C:\\New folder\\'):
    if filename.endswith(".rdp"):
        os.unlink(filename)

And this is the error I get after running it:

FileNotFoundError: [WinError 2] The system cannot find the file specified:

Can somebody assist with this?

Upvotes: 1

Views: 751

Answers (2)

molamk
molamk

Reputation: 4116

os.unlink takes the path to the file, not only its filename. Try pre-pending your filename with the dirname. Like this

import os

dirname = 'C:\\New folder\\'

for filename in os.listdir(dirname):
    if filename.endswith(".rdp"):

        # Add your "dirname" to the file path
        os.unlink(dirname + filename)

Upvotes: 1

Ari
Ari

Reputation: 6149

You could alternatively use os.walk, however it might go deeper than you want:

import os

for root, sub, file in os.walk("/media/"):
    if file.endswith(".rdp"):
        os.unlink(f'{root}/{file}')

Upvotes: 1

Related Questions