Unable to write output from os.path.walk to a file.

Jeff McNeil jeff at jmcneil.net
Wed Jun 4 19:21:40 EDT 2008


Your args are fine, that's just the way os.path.walk works.   If you
just need the absolute pathname of a directory when given a relative
path, you can always use os.path.abspath, too.

A couple more examples that may help, using os.walk:

>>> for i in os.walk('/var/log'):
...     for j in i[1] + i[2]:
...             print os.path.join(i[0], j)
...
/var/log/apache2
/var/log/cups
/var/log/fax
/var/log/krb5kdc
/var/log/ppp
/var/log/sa
/var/log/samba

Or, in the event that a relative path was used:

>>> for i in os.walk(os.path.abspath('../../var/log')):
...     for j in i[1] + i[2]:
...             print os.path.join(i[0], j)
...
/var/log/apache2
/var/log/cups
/var/log/fax
/var/log/krb5kdc
/var/log/ppp
/var/log/sa
/var/log/samba






On Wed, Jun 4, 2008 at 6:07 PM, Paul Lemelle <pdl5000 at yahoo.com> wrote:
> Jeff,
>
> Thanks for your reply.  I would like to like the absolute path of a directory.  I thought that os.listdir just returns the nam itself in a data list.
>
> I noticed that none was being return in my example.  Do you think that I have the arguments misplaced?
>
> Thanks,
> Paul
>
>
>
> --- On Wed, 6/4/08, Jeff McNeil <jeff at jmcneil.net> wrote:
>
>> From: Jeff McNeil <jeff at jmcneil.net>
>> Subject: Re: Unable to write output from os.path.walk to a file.
>> To: pdl5000 at yahoo.com
>> Cc: python-list at python.org
>> Date: Wednesday, June 4, 2008, 3:26 PM
>> What exactly are you trying to accomplish? If you're
>> just looking for
>> the contents of a directory, it would be much easier to
>> simply call
>> os.listdir(dirinput) as that will return a list of strings
>> that
>> represent the entries in dirinput.
>>
>> As it stands, 'os.path.walk' will return None in
>> your example, thus
>> the reason f.writelines is failing, the error says
>> something about a
>> required iterable, no?
>>
>> You ought to look at os.walk anyways, as I believe it is
>> the preferred
>> approach when walking a directory hierarchy. It's a
>> generator that
>> will yield a tuple that contains (dirname, subdirectories,
>> filenames).
>> It seems that is what you're looking for?
>>
>> Thanks,
>>
>> Jeff
>>
>>
>>
>>
>> On Wed, Jun 4, 2008 at 2:54 PM, Paul Lemelle
>> <pdl5000 at yahoo.com> wrote:
>> > I Am trying to output the os.path.walk to a file, but
>> the writelines method complains....
>> >
>> > Below is the code, any helpful suggestions would be
>> appreciated.
>> >
>> > def visit(arg, dirnames, names):
>> >        print dirnames
>> >
>> >
>> >
>> >
>> > dirinput = raw_input("Enter directory to read:
>> ")
>> >
>> > listdir = os.path.walk (dirinput, visit, None)
>> >
>> > f = open("walktxt", "w")
>> >
>> > f.writelines(listdir)
>> >
>> > f.close()
>> >
>> >
>> >
>> >
>> >
>> > --
>> > http://mail.python.org/mailman/listinfo/python-list
>> >
>
>
>
>



More information about the Python-list mailing list