Is there any built in functionality in python as to rename files smartly in windows.

I am using os.rename to move files to a higher directory.

The problem is, the directory I move the file to could have a file that has the same name. I want to do what windows allows a user to do in the GUI, which is choose to auto-rename the file to "<file>.<ext>(n)" where n is the smallest integer not used already.

Is there any way to do this built in. If not does anyone have code that does this?

Thanks

Recommended Answers

All 3 Replies

If you are only concerned with functioning in Windows, there is ready possibility, even not built in directly:
Win32 shell: use SHFileOperation:

Finally, the Platinum Option is probably to use the shell functionality which will offer the same facilities as Explorer, including animated icons, the recycle bin and renaming on collision.

commented: Interesting link +3

When I try the code on that page, I get:
from win32com.shell import shell, shellcon
ImportError: No module named win32com.shell

Nvm I got it to run.

Is there a way to make it automatically select "keep both" ?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.