Issue 25577: os.path.dirname leave left quote and remove right one (original) (raw)

Python 3.4.3 (default, Jun 29 2015, 12:16:01) [GCC 5.1.1 20150618 (Red Hat 5.1.1-4)] on linux Type "help", "copyright", "credits" or "license" for more information.

import os dir = ""ciao/come/stai/ciao.pdf"" dir '"ciao/come/stai/ciao.pdf"' os.path.dirname(dir) '"ciao/come/stai'

As you can see, dirname has removed the right quote, but not the left one. The correct behaviour should be 'ciao/come/stai' (no quotes) OR '"ciao/come/stai"' (both quotes) but never '"ciao/come/stai' (only one quote)

This breaks other bash tools

As far as os.path.dirname is concerned, you have a file named 'ciao.pdf"' in a directory called '"ciao/come/stai', which is what you're seeing. Since those are legal names, there's no way for os.path.dirname to know what you actually want. The solution is to handle the quotes yourself however you want.