Hello,        The value of n is initialized in the main procedure which
calls it. Basically I am trying to find the n'th file in the directory(can
be in its sub directories too). As I've given the previous mail itself

file = findFile(path)
                                 invokes that function.When the path is a
directory it just recurses into it. And coming to your idea of storing all
the items in a list can't be used here because my folder contain thousands
of files and storing them in a list would eat up my memory.

Thanks for your suggestions,
Venu

On Tue, Feb 24, 2009 at 12:49 PM, Gerdus van Zyl <gerdusvan...@gmail.com>wrote:

> I see a couple of problems with your code:
>
> 1. where is n first given a value and what is it total file count,
> etc? also you decrement the value, do you want the last file in the
> directory or something?
> 2. The if os.path.isdir(full_path): .. findFile(full_path) part
> doesn't return or handle the value so it's not useful so far i can
> see. So you either need to "return findFile(full_path) " or "value =
> findFile(full_path)"
> 3. I am not sure of your usage of n, the way i do similiar things is
> to build a list and then just get the item i want by index or slicing.
>
> ~g
>
> On Tue, Feb 24, 2009 at 5:28 AM, venu madhav <venutaurus...@gmail.com>
> wrote:
> > Hello,
> >         First of all thanks for your response. I've written a function as
> > shown below to recurse a directory and return a file based on the value
> of
> > n. I am calling this fucntion from my main code to catch that filename.
> The
> > folder which it recurses through contains a folder having files with
> unicode
> > names (as an example i've given earlier.
> >
> -----------------------------------------------------------------------------
> > def findFile(dir_path):
> >     for name in os.listdir(dir_path):
> >         full_path = os.path.join(dir_path, name)
> >         print full_path
> >         if os.path.isdir(full_path):
> >             findFile(full_path)
> >         else:
> >             n = n - 1
> >             if(n ==0):
> >                 return full_path
> >
> --------------------------------------------------------------------------------------------------
> >                     The problem is in the return statement. In the
> function
> > when I tried to print the file name, it is printing properly but the
> > receiving variable is not getting populated with the file name. The below
> > code (1st statement) shows the value of the full_path variable while the
> > control is at the return statement. The second statement is in the main
> code
> > from where the function call has been made.
> > Once the control has reached the main procedure after executing the
> findFile
> > procedure, the third statement gives the status of file variable which
> has
> > type as NoneType and value as None. Now when I try to check if the path
> > exists, it fails giving the below trace back.
> >
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> >
> E:\DataSet\Unicode\UnicodeFiles_8859\001_0006_test_folder\0003testUnicode_ÍÎIÐNOKÔÕÖ×ØUÚÛÜUUßaáâãäåæicéeëeíîidnokôõö÷øuúûüuu.txt.txt
> >
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> > file = findFile(fpath)
> >
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> > file
> > NoneType
> > None
> >
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> > This is the final trace back:
> > Traceback (most recent call last):
> >   File "C:\RecallStubFopen.py", line 268, in <module>
> >     if os.path.exists(file):
> >   File "C:\Python26\lib\genericpath.py", line 18, in exists
> >     st = os.stat(path)
> > TypeError: coercing to Unicode: need string or buffer, NoneType found
> >
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> > Please ask if you need any further information.
> >
> > Thank you,
> > Venu
> >
> >
> >
> >
> >
> >
> >
> > On Mon, Feb 23, 2009 at 11:32 PM, Chris Rebert <c...@rebertia.com>
> wrote:
> >>
> >> On Mon, Feb 23, 2009 at 5:51 AM, venutaurus...@gmail.com
> >> <venutaurus...@gmail.com> wrote:
> >> > Hi all,
> >> >          I am trying to find the attributes of afile whose name has
> >> > non english characters one like given below. When I try to run my
> >> > python scirpt, it fails giving out an error filename must be in string
> >> > or UNICODE. When i try to copy the name of the file as a strinig, it
> >> > (KOMODO IDE) is not allowing me to save the script saying that it
> >> > cannot convert some of the characters in the current encoding which is
> >> > Western European(CP-1252).
> >> >
> >> > 0010testUnicode_ėíîïðņōóôõöũøųúûüýþĸ !#$%&'()+,-.
> >> > 0123456789;=...@abcd.txt.txt
> >>
> >> (1) How are you entering or retrieving that filename?
> >> (2) Please provide the exact error and Traceback you're getting.
> >>
> >> Cheers,
> >> Chris
> >>
> >> --
> >> Follow the path of the Iguana...
> >> http://rebertia.com
> >
> >
> > _______________________________________________
> > python-win32 mailing list
> > python-win32@python.org
> > http://mail.python.org/mailman/listinfo/python-win32
> >
> >
>
_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to