Easier way to do this?

Ben Bacarisse ben.usenet at bsb.me.uk
Wed Oct 4 16:55:38 EDT 2017


20/20 Lab <lab at 2020fresno.com> writes:

> Looking for advice for what looks to me like clumsy code.
>
> I have a large csv (effectively garbage) dump.  I have to pull out
> sales information per employee and count them by price range. I've got
> my code working, but I'm thinking there must be a more refined way of
> doing this.

I second the suggestion to use the CSV module.  It's very simple to use.

> ---snippet of what I have---
>
> EMP1 = [0,0]
> EMP2 = [0,0]
> EMP3 = [0,0]
>
> for line in (inputfile):
>     content = line.split(",")
>     if content[18] == "EMP1":
>         if float(content[24]) < 99.75:
>             EMP1[0] += 1
>         elif float(content[24]) > 99.74:
>             EMP1[1] += 1
>     if content[18] == "EMP2":
>         if float(content[24]) < 99.75:
>             EMP2[0] += 1
>         elif float(content[24]) > 99.74:
>             EMP2[1] += 1
>     if content[18] == "EMP3":
>         if float(content[24]) < 99.75:
>             EMP3[0] += 1
>         elif float(content[24]) > 99.74:
>             EMP3[1] += 1
>
> and repeat if statements for the rest of 25+ employees.

Eek!  When you have named objects selected using a string that is the
object's name you know you want a dict.  You'd have a single dict for
all employees, keyed by the tag in field 18 of the file.  Does that
help?

I'm deliberately not saying more because this looks like a learning
exercise and you probably want to do most of it yourself.

<snip>
-- 
Ben.



More information about the Python-list mailing list