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