Can someone help please
rantingrick
rantingrick at gmail.com
Fri Jul 22 16:04:32 EDT 2011
On Jul 21, 12:02 pm, Gary <woody... at sky.com> wrote:
--------------------------------------------------
> total = ' '
> os.chdir('/home/woodygar/Desktop/Docs')
> for i in os.listdir('.'):
--------------------------------------------------
"i" was a bad local var choice here! i and x are typically reserved to
represent integer indexes in local loop scope whilst iterating over a
container object. Likewise y and z are meant to represent the next
levels of indexes. However when looping over a list of strings use
something more appropriate like:
for filename in os.listdir('.'):
do_something_with(filename)
--------------------------------------------------
> if '.txt' in i:
--------------------------------------------------
No, no, don't do that! Do if str.endswith('.txt') instead. Or use the
os.path methods.
--------------------------------------------------
> f = open(i, 'r')
> total += f.read()
> f.close()
--------------------------------------------------
Two bad things happening here;
(1.) Need to catch exceptions.
try:
f = open(i, 'r')
total += f.read()
except IOERROR:
freak_out()
else:
f.close()
(2.) NEVER concatenate a string with += in a loop! Instead load the
strings into a list and then use ''.join(lst) method on the list.
>>> filetext = """\
This is line one
this is line two
this is line four\
"""
>>> lst = []
>>> for line in filetext.splitlines():
lst.append(line)
>>> lst
['This is line one', 'this is line two', '', 'this is line four']
>>> '\n'.join(lst)
'This is line one\nthis is line two\n\nthis is line four'
>>> print '\n'.join(lst)
This is line one
this is line two
this is line four
>>>
--------------------------------------------------
> message = """\
> Subject: %s
> %s
>
> """% (SUBJECT,total)
--------------------------------------------------
Use the new format spec over the old string interpolation if available
in your version of python.
MSG = """
Subject: {0}
{1}
"""
MSG.format(SUBJECT,total)
More information about the Python-list
mailing list