# Header
import numpy as np
import struct
# Main source code
for t in range(4):
## file info
dirName = '../RawData/20150915Data_Simul_SystemReqTest/'
seed = 101
ene = 100
#t = 0
filePath = dirName + 'csv/seed' + str(seed) + '_nt_cc_t' + str(t) + '.csv'
## call data
rawData = np.loadtxt(filePath, delimiter=',', skiprows=14)
## refine data
for s in range(100):
#setChk = ((rawData[:,0])//19026509.54==s)
setChk = ((rawData[:,0]+1e9)//19026509.54==s)
det1Chk = (rawData[:,5]!=0) & setChk
det2Chk = (rawData[:,10]!=0) & setChk
coinChk = det1Chk & det2Chk
with open(dirName + 'data_' + str(ene) + 'keV_100sep/coin_' + str(ene) + 'keV_' + str(s) + '.bin', 'ab') as fcoin:
fcoin.write(struct.pack('f'*(len(coinChk.nonzero()[0])*10), *rawData[coinChk, 1:].flatten().tolist()))
with open(dirName + 'data_' + str(ene) + 'keV_100sep/evtN_' + str(ene) + 'keV_' + str(s) + '.bin', 'ab') as fevtN:
#evtNdataL = np.int32(rawData[setChk, 0]).flatten().tolist()
evtNdataL = np.int32(rawData[setChk, 0]+1e9).flatten().tolist()
evtNdataL.extend(det1Chk[setChk]+(det2Chk[setChk]*2))
evtNdata = np.array(evtNdataL).reshape([2,len(evtNdataL)/2])
evtNdataL = evtNdata.T.flatten().tolist()
fevtN.write(struct.pack('i'*len(evtNdataL), *evtNdataL))
with open(dirName + 'data_' + str(ene) + 'keV_100sep/tst1_' + str(ene) + 'keV_' + str(s) + '.bin', 'ab') as ftst1:
ftst1.write(struct.pack('f'*(len(det1Chk.nonzero()[0])), *rawData[det1Chk, 5].flatten().tolist()))
with open(dirName + 'data_' + str(ene) + 'keV_100sep/tst2_' + str(ene) + 'keV_' + str(s) + '.bin', 'ab') as ftst2:
ftst2.write(struct.pack('f'*(len(det2Chk.nonzero()[0])), *rawData[det2Chk, 10].flatten().tolist()))
print(s)
del rawData
del det1Chk, det2Chk, coinChk, setChk
print(t)
嗨,
我试图用python运行一个文件I/O代码,但遇到了麻烦。
我在这个线程的上半部分显示的代码读取.csv
文件,并用列分隔,然后将它们写入输出文件。你知道吗
文件名为:
seed101_nt_cc_t0.csv
seed101_nt_cc_t1.csv
seed101_nt_cc_t2.csv
seed101_nt_cc_t3.csv
它们都是.csv
文件,有10列,大小为3GB
当我运行这个程序时,计算机使用了我的全部10GB内存,过了一段时间,出现了错误消息“内存错误”。你知道吗
我使用intel I-5 CPU和10GB RAM。你知道吗
因为我的老板编写了这个程序,他离开了一段时间,而我不是python用户,我不知道如何处理这么大的文件I/O
我怎样才能解决这个问题?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐