On 10/04/2017 01:55 PM, Ben Bacarisse wrote:
20/20 Lab <l...@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>

Looks like I'll be going with the CSV module.  Should trim it up nicely.

It's not quite a 'learning exercise', but I learn on my own if I treat it as such.  This is just to cut down a few hours of time for me every week filtering the file by hand for the office manager.

Thanks for the pointers,
Matt
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to