os.path.split gets confused with combined \\ and /

Chris Rebert clp2 at rebertia.com
Sun May 17 06:15:59 EDT 2009


On Sun, May 17, 2009 at 3:11 AM, Stef Mientki <stef.mientki at gmail.com> wrote:
> hello,
>
> just wonder how others solve this problem:
> I've to distribute both python files and data files.
> Everything is developed under windows and now the datafiles contains paths
> with mixed \\ and /.
> Under windows everthing is working well,
> but under Ubuntu / Fedora sometimes strange errors occurs.
> Now I was thinking that using os.path.split would solve all problems,
> but if I've the following relative path
>
>   path1/path2\\filename.dat
>
> split will deliver the following under windows
>  path = path1 / path2
>  filename = filename.dat
>
> while under Linux it will give me
>  path = path1
>  filename = path\\filename.dat
>
> So I'm now planning to replace all occurences of os.path.split with a call
> to the following function
>
> def path_split ( filename ) :
>   # under Ubuntu a filename with both
>   # forward and backward slashes seems to give trouble
>   # already in os.path.split
>   filename = filename.replace ( '\\','/')
>
>   return os.path.split ( filename )
>
> how do others solve this problem ?
> Are there better ways to solve this problem ?

Just always use forward-slashes for paths in the first place since
they work on both platforms.
But your technique seems a reasonable way of dealing with mixed-up
datafiles, since you're in that situation.

Cheers,
Chris
-- 
http://blog.rebertia.com



More information about the Python-list mailing list