Поддержу новичка сам новичёк.
Помоему не хватает питону симметрии ввода вывода текста
c:
printf("%d%g",some_int,some_float);
scanf("%d%g",&some_int,&some_float);
c++:
cout<<some_int<<some_float;
cin>>some_int>>some_float;
fortran:
write(*,*) some_int,some_float
read(*,*)some_int,some_float
wolfram matematica:
Export["out.dat",{some_int,some_float}]
{some_int,some_float}=Import["out.dat"]и т.д.
Где это в Питоне???
Для скриптового языка это очень странно - кажется должны быть простые средства. Очень часто приходится разбирать накиданный кемто файл, а городить для этого полноценный парсер явно не скриптовый стиль!!!
Пришлось мне писать Import самому :( . Если есть такая функциональность в других пакетах подскажите пожалуйста.
#!/usr/bin/env python
# -*- coding: cp1251 -*-
import sys,re
def Import(filename):
"""import data from file
return list of string data:
data is list of float,int or string data
"""
# ch=re.compile(r"(?P<fnum>[+\-]?\d*\.\d+([EeDd][+\-]?\d+)?)|(?P<inum>\d+)|(?P<word>[\wА-Яа-я]+)")
ch=re.compile(r"(?P<fnum>[+\-]?\d*\.\d+([EeDd][+\-]?\d+)?)|(?P<inum>\d+)|(?P<word>[\wА-Яа-я\\*\^/0-9\(\)\[\]\{\}>\-]+)")
f=open(filename,"r")
filedata=[]
for line in f.xreadlines():
linedata=[]
for match in ch.finditer(line):
gd=match.groupdict()
if gd["fnum"]!=None:
linedata.append(float(gd["fnum"]))
elif gd["inum"]!=None:
linedata.append(int(gd["inum"]))
elif gd["word"]!=None:
linedata.append(gd["word"])
filedata.append(linedata)
f.close()
return filedata