から行と列の選択異なるファイルに保存します。各データセットのPythonの - 私はこのタイプのFILE.DATを持っていますが、より多くのデータをデータ
Apr 1 18:15 [n1_Cam_A_120213_O.fits]:
4101.77 1. -3.5612 3.561 -0.278635 4.707 6.448 #data1
0.03223 0. 0.05278 0.05278 0.00237 0.4393 0.4125 #error1
4088.9 1. -0.404974 0.405 -0.06538 5.819 0. #data2
0. 0. 0.01559 0.01559 0.00277 0.1717 0. #error2
4116.4 1. -0.225521 0.2255 -0.041111 5.153 0. #data3
0. 0. 0.01947 0.01947 0.00368 0.4748 0. #error3
4120.8 1. -0.382279 0.3823 -0.062194 5.774 0. #data4
0. 0. 0.01873 0.01873 0.00311 0.3565 0. #error4
Apr 1 18:15 [n1_Cam_B_120213_O.fits]:
4101.767 0.9999 -4.57791 4.578 -0.388646 0.03091 7.499 #data1
0.0293 0. 0.03447 0.03447 0.00243 0.00873 0.07529 #error1
4088.9 1. -0.211493 0.2115 -0.080003 2.483 0.
0. 0. 0.01091 0.01091 0.00327 0.1275 0.
4116.4 1. -0.237161 0.2372 -0.040493 5.502 0.
0. 0. 0.02052 0.02052 0.00231 0.5069 0.
4120.8 1. -0.320798 0.3208 -0.108827 2.769 0.
0. 0. 0.0167 0.0167 0.00404 0.1165 0.
最初の行でも、name.fitsが含まれています行には値が含まれ、奇数行(最初は除く)には前の行の値のエラーが含まれます。そして、空白の行が来て、再び始まります。だから、次のファイルは、その後、私のデータの最初の新しいファイルは次のようになり
name1.fits data2[1] err2[1] data2[2] err2[2] data2[3] err2[3]...
name2.fits data2[1] err2[1] data2[2] err2[2] data2[3] err2[3]...
だろう
name1.fits data1[1] err1[1] data1[2] err1[2] data1[3] err1[3]...
name2.fits data1[1] err1[1] data1[2] err1[2] data1[3] err1[3]...
:私は必要なもの
は、このように別のファイルに情報を分離することです:ここでは
n1_Cam_A_120213_O.fits 4101.77 0.03223 1. 0. -3.5612 0.05278 3.561 0.05278 -0.278635 0.00237 4.707 0.4393 6.448 0.4125
n1_Cam_B_120213_O.fits 4101.767 0.0293 0.9999 0. -4.57791 0.03447 4.578 0.03447 -0.388646 0.00243 0.03091 0.00873 7.499 0.07529
は、私がこれまで持っているものです。
with open('file.dat','r') as data, open('names.txt', 'a') as nam, open('values.txt', 'a') as val, open('errors.txt', 'a') as err:
for lines in data.readlines():
cols = lines.split()
if "fits" in lines:
header = lines.split()
nam.write(header[3])
elif float(cols[0]) > 1:
#print cols[0]
x=str(cols)
val.write(x)
elif float(cols[0]) < 1:
#print cols[0]
y=str(cols)
err.write(y)
私はちょうどpythonから始まっています。別の名前の値と異なるファイルのエラーを考えて、必要な行と列を選択しました。しかし、私は何百もの行とファイルを扱うので、私はより自動化されたアプローチを望んでいます。私が欲しいのは、最初の3行を読んでfile1を書いてから1,4,5行を書いてfile2を書いてから1,6,7行を書いてfile3を書いてから1,8,9行を書いてfile4を書いてから空白を飛ばす行11,12,13を読み取り、file1を書き込み、次に11,14,15行を書き込み、file2を書き込むなどの処理を行います。
お返事ありがとうございます。多分私は何かが欠けているかもしれませんが、生成するファイルは空です。私はあなたのコードに迷っています。もっと深く見ていきます。 – JVR
#data1、#error1のようなコメントを削除しました – Like
まだ空の出力が出ています。あなたはコードとは何か違うものを得ていますか? – JVR