deleting file if it exists; python

You're trying to delete an open file, and the docs for os.remove() state...

On Windows, attempting to remove a file that is in use causes an exception to be raised

You could change the code to...

filename = os.path.expanduser('~') + '\Desktop\input.txt'
try:
    os.remove(filename)
except OSError:
    pass
f1 = open(filename, 'a')

...or you can replace all that with...

f1 = open(os.path.expanduser('~') + '\Desktop\input.txt', 'w')

...which will truncate the file to zero length before opening.


You are trying to remove the file while it is open, you don't even need that with there to delete it:

path = os.path.join(os.path.expanduser('~'), 'Desktop/input.txt')
with open(path, 'w'): as f:
    # do stuff

Deletes if it exists


You can use open with mode parameter = 'w'. If mode is omitted, it defaults to 'r'.

with open(os.path.expanduser('~') + '\Desktop\input.txt', 'w')

w Truncate file to zero length or create text file for writing. The stream is positioned at the beginning of the file.