Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reading comma separated tuples from a file in python

Tags:

python

file

input

I am trying to read from a file with several tuples separated by commas. A sample input file looks like:

(0, 0), (0, 2), (0, 4), (-1, -1), (0, -2), (1, -1), (-1, -3),

(-1, 1), (-1, 3), (1, 1), (1, 3), (1, 5), (2, 0), (2, 2), (3, 3),

(2, 4), (3, 5), (4, 4), (5, 3), (6, 4), (5, 5), (7, 5)

After reading from this file, I need a tuple like this:

G = ((0, 0), (0, 2), (0, 4), (-1, -1), (0, -2), (1, -1), (-1, -3), \
(-1, 1), (-1, 3), (1, 1), (1, 3), (1, 5), (2, 0), (2, 2), (3, 3), \
(2, 4), (3, 5), (4, 4), (5, 3), (6, 4), (5, 5), (7, 5))

How this can be done efficiently? Regards.

like image 764
hola Avatar asked Dec 01 '22 18:12

hola


1 Answers

Since they look like proper python tuples you can use literal_eval. Its fast as safe:

Safely evaluate an expression node or a string containing a Python expression. The string or node provided may only consist of the following Python literal structures: strings, numbers, tuples, lists, dicts, booleans, and None.

import ast
s = '''(0, 0), (0, 2), ...'''
result = ast.literal_eval('({0})'.format(s))
like image 161
Viktor Kerkez Avatar answered Dec 30 '22 01:12

Viktor Kerkez