[Baypiggies] Preserving integers when loading a file into a list
Adam Hupp
adam at hupp.org
Sun Jun 15 20:24:48 CEST 2008
You'll need a function that attempts integer conversion and returns
the original value if it fails:
def try_int_convert(sval):
try:
return int(sval)
except ValueError:
return sval
And then you can run the second column through that function:
result = []
for i in file(data_file,'rU'):
splat = i.rstrip().split()
result.append((splat[0], try_int_convert(splat[1])))
On Sun, Jun 15, 2008 at 11:09 AM, Al Nevarez <anevare2 at yahoo.com> wrote:
> Hello,
> What's the best way to preserve integers when loading a file into a list?
>
> for example.. assume we have a tab delimited file that looks like this:
> A 1
> B 2
> C three
>
> I have a line in my program to read that file in like this:
>
> my_data=[line.strip().split(' ') for line in file(data_file,'rU')]
>
> the result in my_data is:
> [['A', '1'], ['B','2'], ['C','three']]
>
> But I need my_data to be like this:
> [['A', 1], ['B',2], ['C','three']]
>
> Needs to be automatic.. i.e. I'm not sure ahead of time, which if any value anywhere will be a string or an integer.
>
> Thanks!
> Al
>
>
>
> _______________________________________________
> Baypiggies mailing list
> Baypiggies at python.org
> To change your subscription options or unsubscribe:
> http://mail.python.org/mailman/listinfo/baypiggies
>
--
Adam Hupp | http://hupp.org/adam/
More information about the Baypiggies
mailing list