On 24/02/2014 16:36, Peter Otten wrote:
Bob Williams wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

My operating system is Linux (openSUSE 13.1).

I'm trying to create symlinks. The following code:

if pathList[j][-3:] == "mp3":
     linkName1 = pathList[j][0:-3] + "mp3"
     linkName2 = destPath + linkName1[len(sourcePath):]
     print 'Creating link %s -> %s' % (linkName2, pathList[j])
     os.symlink(pathList[j], linkName2)

fails with this error:


Creating link /pollux/music/portable/testing/artists/Death in
June/1995 Rose Clouds Of Holocaust/10 Lifebooks.mp3 ->
/home/bob/music/artists/Death in June/1995 Rose Clouds Of Holocaust/10
Lifebooks.mp3
Traceback (most recent call last):
   File "/home/bob/Documents/scripts/python/flac2mp3.py", line 101, in
<module>
     os.symlink(pathList[j], linkName2)
OSError: [Errno 2] No such file or directory

The same thing happens in ipython, when I type the paths in manually.
I have tried escaping the spaces with '\', but the same error is
generated.

The file "/home/bob/music/artists/Death in June/1995 Rose Clouds Of
Holocaust/10 Lifebooks.mp3" definitely exists.

Thanks,

os.symlink(existing_file, symlink_to_create)

fails with that error if the directory that shall contain the new symlink
does not exist. You can create it before making the symlink with

try:
     os.makedirs(os.path.dirname(symlink_to_create))
except OSError as err:
     # Assume the directory exists.
     # A thorough coder would check the errno here
     pass


Python 3.3+ allows finer grained error handling than that shown above, so you could catch FileExistsError, see http://legacy.python.org/dev/peps/pep-3151/ for the details.

--
My fellow Pythonistas, ask not what our language can do for you, ask what you can do for our language.

Mark Lawrence

---
This email is free from viruses and malware because avast! Antivirus protection 
is active.
http://www.avast.com


_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to