чтение файла .seg2 и запись его в виде csv-файла на python

#python #csv #machine-learning

Вопрос:

Я работаю с большим количеством больших файлов (всего около 1 ТБ), и в настоящее время мне нужно проанализировать каждый файл (более 70 из них), и в то же время я хочу преобразовать их все в большой csv-файл для дальнейшей обработки.

Вот что у меня есть:

 def create_database(filename):
    # Import data 
    st = obspy.core.read(filename)
    print ("Analyzing %s..."%filename)
    for i in range(chunks):
        st_temp=st.slice(st[0].stats.starttime i*300/chunks,st[0].stats.starttime (i 1)*300/chunks)
        # 3 seconds 
        datas=[tr.data for tr in st_temp]
        print(datas)
       
        try:
            # Save all features in dataframe    
            df_accel=pd.DataFrame([np.array(datas).flatten()],columns=cols)
            # Adding time
            df_accel['t_start']=st_temp[0].stats.starttime

            del st_temp

            # Writing to csv
            if len(glob.glob('./FOLDER/database_SNIPPET.csv'))==0:
                df_accel.to_csv('./FOLDER/database_SNIPPET.csv', columns=df.columns, index=False)
            else:
                df_accel.to_csv('./FOLDER/database_SNIPPET.csv', mode='a', columns=df.columns, index=False, header=False) 
        except:
            None
    del st
    print ("... Done.")
    return
 

Я заставил его распечатать массив, чтобы я знал, что он обрабатывает файлы (я делаю это с помощью jsut 3, чтобы я мог проверить, работает это или нет).

Затем, используя этот цикл, я пытаюсь проанализировать каждый файл и записать результат в виде csv-файла:

 chunks = 100
filenames=[]
for filename in glob.glob("./FOLDER/FOLDER_WITH_BIG_FILES/*COMMMON_STRING*.seg2"):
    if '(1)' not in filename and '(2)' not in filename and '(3)' not in filename:
        filenames.append(filename)

warnings.simplefilter("ignore")
print ("Analyzing accelerometer data for %i files..."%len(filenames))
startTime = time.time()
for filename in filenames:
    create_database(filename)
elapsedTime = time.time() - startTime
print ("... Done. It took %is."%elapsedTime    )
 

Это выполняется успешно без каких-либо ошибок, но я не вижу, чтобы файл csv создавался в папке path. Да, код/файлы находятся по одному и тому же пути.
Нужно ли мне сначала создать пустой csv-файл?

Где я все испортил?

пример вывода:

 Analyzing ./FOLDER/FOLDER_WITH_BIG_FILES/COMMON_STRING_1.seg2...
[array([ 1.6366858 ,  1.6318611 ,  1.5884378 , ...,  0.16190271,
        0.42405063,  0.38062736], dtype=float32), array([-1.7364223, -1.1577998, -1.0870793, ..., -2.2362878, -2.2330732,
       -2.3182595], dtype=float32), array([ 3.7339797,  3.809525 ,  3.6761153, ...,  3.828813 ,  4.000799 ,
 

и так далее. Для 1 файла это занимает немного секунд. Но как только у меня будет весь анализ в виде базы данных CSV, я смогу использовать его для построения модели ML.