Форум сайта python.su
43
FishHookнеа. Я ничего не понимаю. Что случилось?
ты в курсе, что сейчас Дьявола вызвал?
Офлайн
43
sergeekА все, я понял, 666, да.
неа. Я ничего не понимаю. Что случилось?
Отредактировано sergeek (Ноя. 23, 2013 18:13:43)
Офлайн
568
>>>>А все, я понял, 666, да.
Нет
Офлайн
43
FishHookНу почему же? 6 строенных строк же.
Нет
Офлайн
75
FishHook
cложно сразу сказать ?
Офлайн
568
sergeekЯ тоже,
Я вообще аттеист
Офлайн
857
r1pley
1) как прочитать 10 файлов и записать все в 1
def cat(*fnames, enc='utf-8'): for fname in fnames: with open(fname, encoding=enc) as fin: for line in fin: yield line lines = cat('/etc/passwd', '/etc/fstab') print(*lines, sep='', end='')
doza_andне последовательно, а в том порядке, в котором найдёт
это команда которую можно набрать в командной строке UNIX интерпретатора а не выполнить в питоне. Она просто последовательно свалит в один файл все файлы с расширением dat. Думаю вам это не надо.
Отредактировано py.user.next (Ноя. 23, 2013 20:10:03)
Офлайн
253
py.user.next:) с вами согласен, недостаточно четко сформулировано. Кургинян наверное меня уже оштрафовал за это.
не последовательно, а в том порядке, в котором найдёт
import numpy as np d = np.zeros(3001,dtype='i') d[:] = np.arange(3001)[:] d.tofile('samp.dat')
lines = cat('/etc/passwd', '/etc/fstab') print(*lines, sep='', end='')
for line in cat('/etc/passwd', '/etc/fstab'): print(line)
Отредактировано doza_and (Ноя. 24, 2013 09:26:12)
Офлайн
0
Всем привет, в общем на месте не стоим, пару деньков у меня еще есть, а потом… за одно место подвесить не подвесят…но все же…
В общем что у меня получилось:
1)
import numpy as np
FH = np.loadtxt('000000.dat',comments='#',delimiter=',',skiprows=1)
выдал ошибку:
Traceback (most recent call last):
File “<stdin>”, line 1, in <module>
File “/usr/lib/python2.7/dist-packages/numpy/lib/npyio.py”, line 796, in loadtxt
items =
ValueError: could not convert string to float: N mass x y z vx xy vz
после этого убрал значения N, MASS - vz, получил другую ошибку :
Traceback (most recent call last):
File “<stdin>”, line 1, in <module>
File “/usr/lib/python2.7/dist-packages/numpy/lib/npyio.py”, line 796, in loadtxt
items =
ValueError: invalid literal for float(): 000000 1.25000000E-04 4.91117057E-01 -4.66076625E-02 1.35605059E+00 -2.52565270E-01 -5.22130810E-01 2.27680536E-01
решил сделать по другому:
import numpy as np
with open('000000.dat') as f:
lines = (line for line in f if not line.startswith('#'))
FH = np.loadtxt(lines, delimiter=',', skiprows=1)
получаю ту же самую ошибку:
ValueError: invalid literal for float(): 000000 1.25000000E-04 4.91117057E-01 -4.66076625E-02 1.35605059E+00 -2.52565270E-01 -5.22130810E-01 2.27680536E-01
в общем мозг кипит, а когда еще не знаешь что делать закипает еще больше……
и еще раз привет, в общем прогресс есть - правда почему понять не могу ,когда имеется одна строка,
000000 1.25000000E-04 4.91117057E-01 -4.66076625E-02 1.35605059E+00 -2.52565270E-01 -5.22130810E-01 2.27680536E-01
то вышеупомянутый код ее читает и не падает, а когда две или более…
000000 1.25000000E-04 5.21462443E-01 1.87714331E-02 1.32428970E+00 -2.32415251E-01 -5.23119019E-01 2.80631315E-01
000001 1.25000000E-04 3.63733470E-01 -2.04553131E-01 2.58420622E-01 1.39289015E-02 -2.13983670E-01 2.88175786E-01
000002 1.25000000E-04 2.02149760E-01 -7.24248899E-01 -9.13792116E-01 -4.98215981E-01 -3.19786898E-01 -2.58887870E-01
по падает и выдает ошибку…что делать прямо не знаю
Отредактировано r1pley (Ноя. 24, 2013 12:23:59)
Офлайн
0
Часть проблемы решена следующим кодом
import numpy as np import string import random import pandas as pd with open('t.dat') as f: lines = (line for line in f if not line.startswith('#')) FH = np.loadtxt(lines, delimiter=',', skiprows=1) store = pd.HDFStore('my.h5part',complevel=9, complib='bzip2')
так как видимо все коряво… ребят а как теперь объяснить программе, что первый столбец это номер частицы, второй масса, третий-пятый (x, y, z), шетстой-восьмой (скорость по этим координатам)?
Офлайн