Removing .DS_Store files from mac folders

David Pratt fairwinds at eastlink.ca
Wed Mar 1 23:00:43 EST 2006


My apologies Ben. I should have included the traceback in my message. 
The last line of the traceback I get from python when it gets to 
os.remove is

OSError: [Errno 2] No such file or directory: '.DS_Store'

The traceback occurs immediately after printing:

Current File: .DS_Store
a DS_Store item encountered

so it seems that python can see the file to recognize it as the 
current_file while walking the heirarchy but it cannot see the hidden 
file to remove it with os.remove().

On mac recreating .DS_Store files, my original solution works to remove 
them. In my code I cd to the folder and do the following which will find 
and eliminate them all to any depth.

system('find . -name .DS_Store -exec rm {} \;')

I have been using this method for some time when I put together code in 
a tarball since with mac the .DS_Store pollutes your files. Since I am 
needing to do other things with the files, I though I would do remove 
while walking the folders instead. I can always go back to this but I am 
  hoping someone can advise a way of deleting a hidden file. I am admin 
on the mac so permissions is not an issue.

Regards,
David


Ben Cartwright wrote:
> David Pratt wrote:
> 
>>Hi Ben. Sorry about the cut and paste job into my email. It is part of a
>>larger script. It is actually all tabbed. This will give you a better idea:
>>
>>		for f in file_names:
>>			current_file = os.path.basename(f)
>>			print 'Current File: %s' % current_file
>>
>>			# Clean mac .DS_Store
>>			if current_file == '.DS_Store':
>>				print 'a DS_Store item encountered'
>>				os.remove(f)
> 
> 
> 
> I'm no Mac expert, but could it be that OSX is recreating .DS_Store?
> Try putting this above your os.remove call:
> 
>   import os.stat
>   print 'Last modified:', os.stat(f)[ST_MTIME]
> 
> Then run your script a few times and see if the modified times are
> different.
> 
> You might also try verifying that you get an exception when attempting
> to open the file right after removing it.
> 
> --Ben
> 



More information about the Python-list mailing list