Doubled backslashes in Windows paths

2016-10-07 Thread Oz-in-DFW
I'm using Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:01:18) [MSC
v.1900 32 bit (Intel)] on Windows 7

I'm trying to write some file processing that looks at file size,
extensions, and several other things and I'm having trouble getting a
reliably usable path to files.

The problem *seems* to be doubled backslashes in the path, but I've read
elsewhere that this is just an artifact of the way the interpreter
displays the strings.

I'm getting an error message on an os.path.getsize call;

Path: -
"C:\Users\Rich\Desktop\2B_Proc\2307e60da6451986dd8d23635b845386.jpg" -
Traceback (most recent call last):
  File "C:\Users\Rich\workspace\PyTest\test.py", line 19, in 
if os.path.getsize(path)>1:
  File "C:\Python32\lib\genericpath.py", line 49, in getsize
return os.stat(filename).st_size
WindowsError: [Error 123] The filename, directory name, or volume
label syntax is incorrect:
'"C:\\Users\\Rich\\Desktop\\2B_Proc\\2307e60da6451986dd8d23635b845386.jpg"'

>From (snippet)

path = '"'+dirpath+name+'"'
path = os.path.normpath(path)
print("Path: -",path,"-")
if os.path.getsize(path)>1:
print("Path: ",path," Size:
",os.path.getsize(dirpath+name))

but if I manually use a console window and cut and paste the path I
print, it works;

C:\>dir
"C:\Users\Rich\Desktop\2B_Proc\2307e60da6451986dd8d23635b845386.jpg"
 Volume in drive C is Windows7_OS

 Directory of C:\Users\Rich\Desktop\2B_Proc

10/03/2016  08:35 AM59,200
2307e60da6451986dd8d23635b845386.jpg
   1 File(s) 59,200 bytes
   0 Dir(s)  115,857,260,544 bytes free

So the file is there and the path is correct. I'm adding quotes to the
path to deal with directories and filenames that have spaces in them. 
If I drop the quotes, everything works as I expect *until* I encounter
the first file/path with spaces.

I'll happily RTFM, but I need some hints as to which FM to R

-- 
mailto:[email protected]
Oz
POB 93167 
Southlake, TX 76092 (Near DFW Airport) 



-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Doubled backslashes in Windows paths [Resolved]

2016-10-07 Thread Oz-in-DFW
On 10/7/2016 12:30 AM, Oz-in-DFW wrote:
> I'm using Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:01:18) [MSC
> v.1900 32 bit (Intel)] on Windows 7
>
> I'm trying to write some file processing that looks at file size,
> extensions, and several other things and I'm having trouble getting a
> reliably usable path to files.
Thanks to all who have replied.  It looks like I have this part fixed.

I had it fixed sooner than I realized because of cranial-anal-retention
- the os.path.getsize() call was not using the variable into which I was
placing the corrected path.  D'oh!

The root problem was that the path did not have a trailing slash when
concatenated with the filename.  This was handled properly by an
os.path.join() call as recommended by Dennis Lee Bieber.

So what now works is

path = os.path.join(dirpath,name)
if os.path.getsize(path)>1:
print("Path: ",path," Size: ",os.path.getsize(path))

Raw strings didn't apply because the content of /dirpath /and /name /are
the result of an os.walk() call.

As Dennis Lee Bieber also observed, the call to

   path = os.path.normpath(path)

wasn't needed. It does no harm as it changes the slash directions to
keep the Windows command line happy, but the Python functions are just
as happy without the changes.

Thanks to all who replied.

-- 
mailto:[email protected]
Oz
POB 93167 
Southlake, TX 76092 (Near DFW Airport) 



-- 
https://mail.python.org/mailman/listinfo/python-list