By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,276 Members | 2,063 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,276 IT Pros & Developers. It's quick & easy.

Double backslash in filepaths ?

P: n/a
It looks like sometimes a single backslash is replaced by a double backslash,
but sometimes it's not ???
See the error message below,
the first backslash is somewhere (not explicitly in my code) replaced,
but the second is not ???
Is it in general better to use double backslash in filepaths ?

thanks,
Stef Mientki

>>Write_Signal_File_Ext (IOO, fSamp, 'D:\data_to_test\test_global.pd')
Traceback (most recent call last):
File "<string>", line 21, in ?
File "D:\data_to_test\Signal_WorkBench.py", line 118, in Write_Signal_File_Ext
DataFile.Write_Data (Data)
File "D:\data_to_test\Signal_WorkBench.py", line 95, in Write_Data
self.Write_Header(Nchan)
File "D:\data_to_test\Signal_WorkBench.py", line 83, in Write_Header
self.datafile = open(self.filename,'wb')
IOError: [Errno 2] No such file or directory: 'D:\\data_to_test\test_global.pd'
Apr 14 '07 #1
Share this Question
Share on Google+
3 Replies


P: n/a

On Apr 14, 2007, at 4:26 AM, Stef Mientki wrote:
It looks like sometimes a single backslash is replaced by a double
backslash,
but sometimes it's not ???
See the error message below,
the first backslash is somewhere (not explicitly in my code) replaced,
but the second is not ???
Is it in general better to use double backslash in filepaths ?

thanks,
Stef Mientki

>>>Write_Signal_File_Ext (IOO, fSamp, 'D:\data_to_test
\test_global.pd')
Traceback (most recent call last):
File "<string>", line 21, in ?
File "D:\data_to_test\Signal_WorkBench.py", line 118, in
Write_Signal_File_Ext
DataFile.Write_Data (Data)
File "D:\data_to_test\Signal_WorkBench.py", line 95, in
Write_Data
self.Write_Header(Nchan)
File "D:\data_to_test\Signal_WorkBench.py", line 83, in
Write_Header
self.datafile = open(self.filename,'wb')
IOError: [Errno 2] No such file or directory: 'D:\\data_to_test
\test_global.pd'
If I remember correctly, you don't really have to use backslashes at
all. I think that's just a holdover from when DOS filesystems first
became hierarchical -- and they had already used the sensible
directory delimiter '/' as a command line switch character. So I
think you can just substitute forward slashes and forget that double-
backslash madness.

But that's not really answering your question, is it?

What you're looking for is called 'escape characters'. The single
backslash combines with the 't' to become a TAB character. The
double backslashes combine to become '\'. So:
>>print 'D:\\data_to_test\test_global.pd'
D:\data_to_test est_global.pd

hth,
Michael

Apr 14 '07 #2

P: n/a
Stef Mientki <S.**************@mailbox.kun.nlwrites:
It looks like sometimes a single backslash is replaced by a double backslash,
but sometimes it's not ???
See the error message below,
the first backslash is somewhere (not explicitly in my code) replaced,
but the second is not ???
Is it in general better to use double backslash in filepaths ?
[...]
IOError: [Errno 2] No such file or directory: 'D:\\data_to_test\test_global.pd'
'\t' is the tab character. '\d' is not a valid escape sequence, so
the backslash there survives intact. repr() normalises the string on
output, so the (single!) backslash in '\d' is displayed, as always in
the repr of strings, as '\\'.

You should either use this:

'D:\\data_to_test\\test_global.pd'
Or this:

r'D:\data_to_test\test_global.pd'

See also:

http://www.python.org/doc/faq/genera...th-a-backslash
Or even this, which will work unless you're using crufty software that
doesn't like slash path separators (cmd.exe being one of those pieces
of software):

'D:/data_to_test/test_global.pd'
John
Apr 14 '07 #3

P: n/a
John J. Lee wrote:
Stef Mientki <S.**************@mailbox.kun.nlwrites:
>It looks like sometimes a single backslash is replaced by a double backslash,
but sometimes it's not ???
See the error message below,
the first backslash is somewhere (not explicitly in my code) replaced,
but the second is not ???
Is it in general better to use double backslash in filepaths ?
[...]
>IOError: [Errno 2] No such file or directory: 'D:\\data_to_test\test_global.pd'

'\t' is the tab character. '\d' is not a valid escape sequence, so
the backslash there survives intact. repr() normalises the string on
output, so the (single!) backslash in '\d' is displayed, as always in
the repr of strings, as '\\'.

You should either use this:

'D:\\data_to_test\\test_global.pd'
Or this:

r'D:\data_to_test\test_global.pd'

See also:

http://www.python.org/doc/faq/genera...th-a-backslash
Or even this, which will work unless you're using crufty software that
doesn't like slash path separators (cmd.exe being one of those pieces
of software):

'D:/data_to_test/test_global.pd'
John
thanks John and Michael,
this is a very helpful explanation.

cheers,
Stef
Apr 14 '07 #4

This discussion thread is closed

Replies have been disabled for this discussion.