Re: Path / Listing and os.walk problem.

2010-08-26 Thread Alban Nona
So I found a way to do it, maybe some people could be interested:

listNames = []
for n in names:
listNames.append('_'.join(n.split('_')[:-1]))
#It will cut the last part of the file name convention

listNames = list(set(listNames)) #we Delete duplicates from the list, like
this we only have what we are interested in
for e in listNames: #Juste to check.
print e

:)



2010/8/26 Alban Nona 

> Hey ! Thank you guys !
> It help me a lot !
>
> @Dennis (Gomes): Thanks ! I tried it it worked well but list me the whole
> files :P (and finally crashed python...lol)
>
> I looked at the Peter method and, Im really dumb to didnt tough about
> defining a pattern like *_v001.0001.exr * like this, it sort me only one
> frame...which is perfect and less memory consuming I guess.
>
> And glob use seems to be perfect for what I want to do ! so thank you to
> point me in this direction :p
>
> I tried also the Peter code, and it give me a good listing of my element
> like I wanted:
>
> HPO7_SEQ004_031_VDMRoom_ALB
> HPO7_SEQ004_031_VDMRoom_AMB
> HPO7_SEQ004_031_VDMRoom_BTY
> HPO7_SEQ004_031_VDMRoom_Cutouts_ALB
> HPO7_SEQ004_031_VDMRoom_Cutouts_AMB
> HPO7_SEQ004_031_VDMRoom_Cutouts_DET
> 
> HPO7_SEQ004_031_VDMRoom_DET
> HPO7_SEQ004_031_VDMRoom_DIF
> HPO7_SEQ004_031_VDMRoom_DPF
> HPO7_SEQ004_031_VDMRoom_Decals_ALB
> 
> HPO7_SEQ004_031_VDM_ALB
>
> HPO7_SEQ004_031_VDM_AMB
> HPO7_SEQ004_031_VDM_BTY
>
> HPO7_SEQ004_031_VDM_DIF
> HPO7_SEQ004_031_VDM_DPF
> HPO7_SEQ004_031_VDM_Fresnel_mat
>
>
> Unfortunatly, a new problem come to me, I looking to get that kind of
> list:
>
> HPO7_SEQ004_031_VDMRoom
> HPO7_SEQ004_031_VDMRoom
> HPO7_SEQ004_031_VDMRoom
> HPO7_SEQ004_031_VDMRoom_Cutouts
> HPO7_SEQ004_031_VDMRoom_Cutouts
> HPO7_SEQ004_031_VDMRoom_Cutouts
> 
>
> Right now, Im looking the documentation to find a way to do it, Im thinking
> about string methods, I also though: " hey, I just have to delete the 4 last
> characters, but na ! itll not work because sometime I have something like
> "_Fresnel_mat'' which is of course more than 4 chars...)
>
> Maybe the best would be to declare something like "in the string, look at
> the last "_" and delete it + whatever there is after"
> but I didnt find how to do it, I mean I tried splitext which is, not
> appropriate.
>
> Do I have to declare a list of element like:
> elementList: ["_ALB", "AMB", "_Beauty", etc...]
> and to search that pattern in the files name to remove it after ? it seems
> not bad as solution, but I pretty sure there is a better way to do it.
>
> right ?
>
> anyway, thank very much guys ! :)
> and have a good day !
>
>
> 2010/8/26 Peter Otten <__pete...@web.de>
>
> Alban Nona wrote:
>>
>> > Hi
>> >
>> > So here is my problem:
>> >
>> > I have my render files that are into a directory like this:
>> >
>> > c:\log\renderfiles\HPO7_SEQ004_031_VDM_DIF_V001.0001.exr
>> > c:\log\renderfiles\HPO7_SEQ004_031_VDM_DIF_V001.0002.exr
>> > c:\log\renderfiles\HPO7_SEQ004_031_VDM_DIF_V001.0003.exr
>> > 
>> > c:\log\renderfiles\HPO7_SEQ004_031_VDM_AMB_V001.0001.exr
>> > c:\log\renderfiles\HPO7_SEQ004_031_VDM_AMB_V001.0002.exr
>> > c:\log\renderfiles\HPO7_SEQ004_031_VDM_AMB_V001.0003.exr
>> >
>> > True is, there is like 1000 Files is the directory (C:\log\renderfiles\)
>> >
>> > What Iam looking to is to extract the first part of the filenames as a
>> > list, but I dont want the script to extract it 1000times, I mean I dont
>> > need it to extract HPO7_SEQ004_031_VDM_AMB 150 times, because there is
>> 150
>> > Frames. (not sure if its clear tought)
>> >
>> > so far, I would like the list to look lik:
>> >
>> > ["HPO7_SEQ004_031_VDM_DIF", "HPO7_SEQ004_031_VDM_AMB", etc...]
>> >
>> >
>> > I start to think about that, to try to use a
>> >
>> > for (path, dirs, files) in os.walk(path):
>> > list.append(files)
>> >
>> >
>> > but this kind of thing will just append the whole 1000 files, thing that
>> I
>> > dont want, and more complicated I dont want the thing after "AMB" or
>> "DIF"
>> > in the name files to follow.
>> > (thing I can delete using a split, if I read well ?)
>> >
>> >
>> > I trying to search on internet for answer, but seems I find nothing
>> about
>> > it.
>> > Someone can help me with that please, show me the way or something ?
>>
>> You can use glob. Assuming the files are all in one directory:
>>
>> import os
>> import glob
>>
>> folder = r"C:\log\renderfiles"
>>
>> # find files that end with "_V001.0001.exr"
>> pattern = os.path.join(folder, "*_V001.0001.exr")
>> files = glob.glob(pattern)
>>
>> # remove the directory
>> names = [os.path.basename(f) for f in files]
>>
>> # remove everything after and including the last occurence of "_"
>> names = [n.rpartition("_")[0] for n in names]
>>
>> print "\n".join(sorted(names))
>>
>> Peter
>>
>> --
>> http://mail.python.org/mailman/listinfo/python-list
>>
>
>
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Path / Listing and os.walk problem.

2010-08-26 Thread Alban Nona
Hey ! Thank you guys !
It help me a lot !

@Dennis (Gomes): Thanks ! I tried it it worked well but list me the whole
files :P (and finally crashed python...lol)

I looked at the Peter method and, Im really dumb to didnt tough about
defining a pattern like *_v001.0001.exr * like this, it sort me only one
frame...which is perfect and less memory consuming I guess.

And glob use seems to be perfect for what I want to do ! so thank you to
point me in this direction :p

I tried also the Peter code, and it give me a good listing of my element
like I wanted:

HPO7_SEQ004_031_VDMRoom_ALB
HPO7_SEQ004_031_VDMRoom_AMB
HPO7_SEQ004_031_VDMRoom_BTY
HPO7_SEQ004_031_VDMRoom_Cutouts_ALB
HPO7_SEQ004_031_VDMRoom_Cutouts_AMB
HPO7_SEQ004_031_VDMRoom_Cutouts_DET

HPO7_SEQ004_031_VDMRoom_DET
HPO7_SEQ004_031_VDMRoom_DIF
HPO7_SEQ004_031_VDMRoom_DPF
HPO7_SEQ004_031_VDMRoom_Decals_ALB

HPO7_SEQ004_031_VDM_ALB
HPO7_SEQ004_031_VDM_AMB
HPO7_SEQ004_031_VDM_BTY
HPO7_SEQ004_031_VDM_DIF
HPO7_SEQ004_031_VDM_DPF
HPO7_SEQ004_031_VDM_Fresnel_mat


Unfortunatly, a new problem come to me, I looking to get that kind of  list:

HPO7_SEQ004_031_VDMRoom
HPO7_SEQ004_031_VDMRoom
HPO7_SEQ004_031_VDMRoom
HPO7_SEQ004_031_VDMRoom_Cutouts
HPO7_SEQ004_031_VDMRoom_Cutouts
HPO7_SEQ004_031_VDMRoom_Cutouts


Right now, Im looking the documentation to find a way to do it, Im thinking
about string methods, I also though: " hey, I just have to delete the 4 last
characters, but na ! itll not work because sometime I have something like
"_Fresnel_mat'' which is of course more than 4 chars...)

Maybe the best would be to declare something like "in the string, look at
the last "_" and delete it + whatever there is after"
but I didnt find how to do it, I mean I tried splitext which is, not
appropriate.

Do I have to declare a list of element like:
elementList: ["_ALB", "AMB", "_Beauty", etc...]
and to search that pattern in the files name to remove it after ? it seems
not bad as solution, but I pretty sure there is a better way to do it.

right ?

anyway, thank very much guys ! :)
and have a good day !


2010/8/26 Peter Otten <__pete...@web.de>

> Alban Nona wrote:
>
> > Hi
> >
> > So here is my problem:
> >
> > I have my render files that are into a directory like this:
> >
> > c:\log\renderfiles\HPO7_SEQ004_031_VDM_DIF_V001.0001.exr
> > c:\log\renderfiles\HPO7_SEQ004_031_VDM_DIF_V001.0002.exr
> > c:\log\renderfiles\HPO7_SEQ004_031_VDM_DIF_V001.0003.exr
> > 
> > c:\log\renderfiles\HPO7_SEQ004_031_VDM_AMB_V001.0001.exr
> > c:\log\renderfiles\HPO7_SEQ004_031_VDM_AMB_V001.0002.exr
> > c:\log\renderfiles\HPO7_SEQ004_031_VDM_AMB_V001.0003.exr
> >
> > True is, there is like 1000 Files is the directory (C:\log\renderfiles\)
> >
> > What Iam looking to is to extract the first part of the filenames as a
> > list, but I dont want the script to extract it 1000times, I mean I dont
> > need it to extract HPO7_SEQ004_031_VDM_AMB 150 times, because there is
> 150
> > Frames. (not sure if its clear tought)
> >
> > so far, I would like the list to look lik:
> >
> > ["HPO7_SEQ004_031_VDM_DIF", "HPO7_SEQ004_031_VDM_AMB", etc...]
> >
> >
> > I start to think about that, to try to use a
> >
> > for (path, dirs, files) in os.walk(path):
> > list.append(files)
> >
> >
> > but this kind of thing will just append the whole 1000 files, thing that
> I
> > dont want, and more complicated I dont want the thing after "AMB" or
> "DIF"
> > in the name files to follow.
> > (thing I can delete using a split, if I read well ?)
> >
> >
> > I trying to search on internet for answer, but seems I find nothing about
> > it.
> > Someone can help me with that please, show me the way or something ?
>
> You can use glob. Assuming the files are all in one directory:
>
> import os
> import glob
>
> folder = r"C:\log\renderfiles"
>
> # find files that end with "_V001.0001.exr"
> pattern = os.path.join(folder, "*_V001.0001.exr")
> files = glob.glob(pattern)
>
> # remove the directory
> names = [os.path.basename(f) for f in files]
>
> # remove everything after and including the last occurence of "_"
> names = [n.rpartition("_")[0] for n in names]
>
> print "\n".join(sorted(names))
>
> Peter
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Path / Listing and os.walk problem.

2010-08-26 Thread Peter Otten
Alban Nona wrote:

> Hi
> 
> So here is my problem:
> 
> I have my render files that are into a directory like this:
> 
> c:\log\renderfiles\HPO7_SEQ004_031_VDM_DIF_V001.0001.exr
> c:\log\renderfiles\HPO7_SEQ004_031_VDM_DIF_V001.0002.exr
> c:\log\renderfiles\HPO7_SEQ004_031_VDM_DIF_V001.0003.exr
> 
> c:\log\renderfiles\HPO7_SEQ004_031_VDM_AMB_V001.0001.exr
> c:\log\renderfiles\HPO7_SEQ004_031_VDM_AMB_V001.0002.exr
> c:\log\renderfiles\HPO7_SEQ004_031_VDM_AMB_V001.0003.exr
> 
> True is, there is like 1000 Files is the directory (C:\log\renderfiles\)
> 
> What Iam looking to is to extract the first part of the filenames as a
> list, but I dont want the script to extract it 1000times, I mean I dont
> need it to extract HPO7_SEQ004_031_VDM_AMB 150 times, because there is 150
> Frames. (not sure if its clear tought)
> 
> so far, I would like the list to look lik:
> 
> ["HPO7_SEQ004_031_VDM_DIF", "HPO7_SEQ004_031_VDM_AMB", etc...]
> 
> 
> I start to think about that, to try to use a
> 
> for (path, dirs, files) in os.walk(path):
> list.append(files)
> 
> 
> but this kind of thing will just append the whole 1000 files, thing that I
> dont want, and more complicated I dont want the thing after "AMB" or "DIF"
> in the name files to follow.
> (thing I can delete using a split, if I read well ?)
> 
> 
> I trying to search on internet for answer, but seems I find nothing about
> it.
> Someone can help me with that please, show me the way or something ?

You can use glob. Assuming the files are all in one directory:

import os
import glob

folder = r"C:\log\renderfiles"

# find files that end with "_V001.0001.exr"
pattern = os.path.join(folder, "*_V001.0001.exr")
files = glob.glob(pattern)

# remove the directory
names = [os.path.basename(f) for f in files]

# remove everything after and including the last occurence of "_"
names = [n.rpartition("_")[0] for n in names]

print "\n".join(sorted(names))

Peter

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


Path / Listing and os.walk problem.

2010-08-25 Thread Alban Nona
Hi

So here is my problem:

I have my render files that are into a directory like this:

c:\log\renderfiles\HPO7_SEQ004_031_VDM_DIF_V001.0001.exr
c:\log\renderfiles\HPO7_SEQ004_031_VDM_DIF_V001.0002.exr
c:\log\renderfiles\HPO7_SEQ004_031_VDM_DIF_V001.0003.exr

c:\log\renderfiles\HPO7_SEQ004_031_VDM_AMB_V001.0001.exr
c:\log\renderfiles\HPO7_SEQ004_031_VDM_AMB_V001.0002.exr
c:\log\renderfiles\HPO7_SEQ004_031_VDM_AMB_V001.0003.exr

True is, there is like 1000 Files is the directory (C:\log\renderfiles\)

What Iam looking to is to extract the first part of the filenames as a list,
but I dont want the script to extract it 1000times, I mean I dont need it
to extract HPO7_SEQ004_031_VDM_AMB 150 times, because there is 150 Frames.
(not sure if its clear tought)

so far, I would like the list to look lik:

["HPO7_SEQ004_031_VDM_DIF", "HPO7_SEQ004_031_VDM_AMB", etc...]


I start to think about that, to try to use a

for (path, dirs, files) in os.walk(path):
list.append(files)


but this kind of thing will just append the whole 1000 files, thing that I
dont want, and more complicated I dont want the thing after "AMB" or "DIF"
in the name files to follow.
(thing I can delete using a split, if I read well ?)


I trying to search on internet for answer, but seems I find nothing about
it.
Someone can help me with that please, show me the way or something ?

Thank you ! :)
-- 
http://mail.python.org/mailman/listinfo/python-list