Преобразование текстовых данных в пользовательский формат в Python
У меня есть набор данных, который я буду читать из текстового файла:
0.0000000e+000 -1.4275799e-003
2.0000000e-002 -1.1012760e-002
4.0000000e-002 -1.0298970e-002
6.0000000e-002 -8.9733599e-003
8.0000000e-002 -9.6871497e-003
1.0000000e-001 -1.2236400e-002
1.2000000e-001 -1.4479739e-002
1.4000000e-001 -1.3052160e-002
1.6000000e-001 -1.1216700e-002
1.8000000e-001 -8.6674497e-003
2.0000000e-001 -8.6674497e-003
2.2000000e-001 -1.3358070e-002
2.4000000e-001 -1.7946720e-002
2.6000000e-001 -1.9782179e-002
Я хочу преобразовать после прочтения текстового файла в формат как:
(0.0000000e+000, -1.4275799e-003), (2.0000000e-002, -1.1012760e-002), (4.0000000e-002, -1.0298970e-002), ..., (2.6000000e-001, -1.9782179e-002)
который должен быть расположен в один ряд.
Может ли кто-нибудь помочь мне с этим? У меня есть код следующим образом:
with open('1.txt') as f:
for line in f:
n0 = map(float, line.split())
n1 = tuple(n0)
n2 = zip(n1)
print n0
Я не получаю никакой ошибки, однако проблема заключается в zip
Команда не дает мне желаемый формат в строке.
2 ответа
Решение
Код ниже должен выполнить работу:
def load_data(fn):
with open(fn) as f:
lines = f.readlines()
return [tuple(map(float, x)) for x in [row.split() for row in lines]]
def display_data(lst):
return lst.__repr__()[1:-1]
ppp = load_data('1.txt')
print display_data(ppp)
#(0.0, -0.0014275799), (0.02, -0.01101276), (0.04, -0.01029897), (0.06, -0.0089733599), (0.08, -0.0096871497), (0.1, -0.0122364), (0.12, -0.014479739), (0.14, -0.01305216), (0.16, -0.0112167), (0.18, -0.0086674497), (0.2, -0.0086674497), (0.22, -0.01335807), (0.24, -0.01794672), (0.26, -0.019782179)
print ppp
#[(0.0, -0.0014275799),
# (0.02, -0.01101276),
# (0.04, -0.01029897),
# (0.06, -0.0089733599),
# (0.08, -0.0096871497),
# (0.1, -0.0122364),
# (0.12, -0.014479739),
# (0.14, -0.01305216),
# (0.16, -0.0112167),
# (0.18, -0.0086674497),
# (0.2, -0.0086674497),
# (0.22, -0.01335807),
# (0.24, -0.01794672),
# (0.26, -0.019782179)]
with open("1.txt" , "rb") as txtfile:
outputstr = ""
ioreader = txtfile.read()
for line in ioreader.split("\n"):
outputstr += str(tuple(line.split("\t")))
outputstr += ","
print outputstr