[Baypiggies] scientific notation: string to int
Rami Chowdhury
rami.chowdhury at gmail.com
Thu Dec 9 23:53:24 CET 2010
On Thursday 09 December 2010 21:59:57 Bryce Verdier wrote:
> Hey Keith,
>
> The best I can do for string is the line from my original posting(client
> data, NDA, I'm sure you understand):
>
> b1021384-6633-4756-b3e1-c36d34c1dfd2, clientname_001,Thu Dec 2 00:00:00
> UTC 2010,2.96116E+11,0,0, Thu Dec 2 00:00:00 UTC 2010,577078067
> 20,15228831373,80966857300,
Well, we already know that string works :S Could you put the setting of
self.size in a try/except block, and print out the string that's causing the
ValueError?
> I will say that in the file there are 135 lines in the files. So it's
> not like there is a lot data to deal with. I wonder if I should move
> back to 2.7.
>
> the code is still being worked on, so don't laugh to hard (constructive
> critisims are welcomed though) ;)
> #!/usr/bin/python3
>
> import sys
> import re
> from optparse import OptionParser
>
> class client(object):
> def __init__(self, name, size):
> self.name = name
> self.size = float(size)
> self.east_coast = bool(re.search("_E", name))
> self.trial = bool(re.search("TR_", name))
> self.demo = bool(re.search("_Demo", name))
> self.zetta = bool(re.search("zetta|Zetta", name))
>
> def get_size(self):
> return str(self.size)
>
> def get_name(self):
> return str(self.name)
I'm by no means an expert but getters and setters don't strike me as
particularly Pythonic -- perhaps properties are more so?
>
> def read_file(filename):
> file_data = {}
>
> with open(filename, 'r') as f:
> for lines in f:
> split_lines = lines.split(',')
> file_data[split_lines[1]] = split_lines[3]
>
> return file_data
>
> if __name__ == "__main__":
>
> file1_clients = {}
> file2_clients = {}
> file1_class_clients = []
> file2_class_clients = []
>
> usage = "%prog [options]"
> parser = OptionParser(usage=usage)
> parser.add_option("-f", "--first", dest="first",
> help="Older file first, builds table from here.")
> parser.add_option("-s", "--second", dest="second",
> help="New file, used for calculating the difference.")
>
> (options,args) = parser.parse_args()
>
> if not options.first or not options.second:
> print("The file argument (-f) is nessacary to run this
> program.\n") parser.print_help()
> sys.exit(1)
>
> file1_clients = read_file(options.first)
> file2_clients = read_file(options.second)
>
> for x,v in file1_clients.items():
> file1_class_clients.append(client(x,v))
>
> for x,v in file2_clients.items():
> file2_class_clients.append(client(x,v))
>
> for x in file1_class_clients:
> print(x.get_name() + ":" + x.get_size())
>
> On 12/09/2010 01:44 PM, Keith Dart wrote:
> > === On Thu, 12/09, Bryce Verdier wrote: ===
> >
> >> ValueError: could not convert string to float: Commercial Max Space
> >> Used
> >>
> >>
> >> This is in python 3.1.2 if that matters.
> >
> > ===
> >
> > Whoa, that's a new one. Not even Google knows about it. Can you supply
> > the actual string here?
> >
> >
> >
> > -- Keith Dart
>
> _______________________________________________
> Baypiggies mailing list
> Baypiggies at python.org
> To change your subscription options or unsubscribe:
> http://mail.python.org/mailman/listinfo/baypiggies
----
Rami Chowdhury
"Strangers are just friends who haven't had enough gin." -- Howdle's
Saying
+44-7581-430-517 / +88-01819-245544 /+1-408-597-7068
More information about the Baypiggies
mailing list