> Ok. I appreciate ur response and its gud somewhat... But we dont have only 
> space=" " . this '\' rules also applies to '(' ')' and all that stuff also... 
> so i was looking for the builtin function that fully converts it... Is there 
> any one??

This may depend on your system, but generally, putting the complete filename 
between quotes ("some filename with ()") also works well; no need for escapes 
(unless your filename contains quotes itself).
Otherwise, you put the a.replace in a simple for loop that iterates through all 
special characters that need to be replaced.
Or you could look into regular expressions: re.sub can help.

Lastly, depending on your exact needs, Python may already take care of this 
anyway. Eg:
>>> import glob
>>> files = glob.glob("special*")
>>> files
['special name']
>>> f = open(files[0])
>>> f.read()
'data\n'

So even though there's no escape for the space character in 'special name', 
Python's open is smart enough to take care of the spaces and open the file 
correctly anyway.


> >>>>> a = "my file number"
> >>>>> a.replace(' ', '\\ ')
> >> 'my\\ file\\ number'
> >
> > What if a has more than 1 space between words? Then I think this would
> > be a safer way.
> >
> >>>> print "\\ ".join("my  file  number".split())
> > my\ file\ number
> 
> If those spaces are in the actual filename, you'll want to keep them, hence 
> you'll need to escape those extra spaces as well.

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

Reply via email to