# File shredding (secure deletion) algorithm

Does anyone see anything wrong with this? I was considering using something like srm or wipe and use os.system to call it from Python code. Should I do that?

My main concern is drives and filesystems that use wear leveling. But even if the program overwrites a portion of the file that should render it useless right? And with the file renamed, there should be no way to tell what the file was.

import random
import os

def wipe(f, passes=30):
if not os.path.isfile(f):
return "Could not find the specified file!"
with open(f, "ba+") as f2w:
size = f2w.tell()
for i in range(passes):
f2w.seek(0)

f2w.write(os.urandom(size))
new_name = str(random.randint(1000,1000000000000))
os.rename(f, new_name)
os.remove(new_name)
return "Success!"