Как создать файл csv, который помечает неструктурированный набор данных в соответствии с именами файлов

У меня есть неструктурированный набор данных, состоящий из аудиофайлов. Как перебрать все файлы в данном каталоге (включая все файлы в моих подпапках) и пометить их в соответствии с именами файлов, а затем сохранить эту информацию в файле CSV?

Я ожидаю, что CSV-файл будет выглядеть примерно так: CSV-файл:

введите здесь описание изображения


person Sarah    schedule 31.03.2019    source источник
comment
Не могли бы вы уточнить: пометить их в соответствии с их именами файлов? Вам нужно, чтобы метка была первым и последним символом имени файла?   -  person Pedro Lobito    schedule 01.04.2019
comment
нет, этикетка не должна выглядеть так. Цель состоит в том, чтобы получить имя файла и создать метку так, как я хочу (для всех моих файлов), а затем сохранить эту информацию в файле csv.   -  person Sarah    schedule 01.04.2019


Ответы (1)


Цель состоит в том, чтобы получить имя файла и создать метку так, как я хочу (для всех моих файлов), а затем сохранить эту информацию в файле csv.

Вы можете использовать glob и панды to_csv() для этой задачи, т.е.:

from os import path
from glob import glob
import pandas as pd

f_filter = ["mp3", "ogg"] # a list containing the desired file extensions to be matched
m = [] # final match list

for f_path in glob('D:/museu_do_fado/mp3/**', recursive=True): # loop directory recursively
    f_name = path.basename(f_path) # get the filename
    f_ext = f_name.split(".")[-1].lower() # get the file extension and lower it for comparison.

    if f_ext in f_filter: # filter files by f_filter 

        label = "Your choice"
        #label = f_name[0] + f_ext[-1] # as per your example, first char of file_name and last of file_ext
        m.append([f_path, f_name, f_ext, label]) # append to match list
        #print(f_path, f_name, f_name, label)

df = pd.DataFrame(m, columns=['f_path', 'f_name', 'f_ext', 'label']) # create a dataframe from match list
df.to_csv("my_library.csv", index=False) # create csv from df

Образец csv:

f_path,f_name,f_ext,label
D:\museu_do_fado\mp3\MDF0001_39.mp3,MDF0001_39.mp3,mp3,Your choice
D:\museu_do_fado\mp3\MDF0001_40.mp3,MDF0001_40.mp3,mp3,Your choice
...

Заметки:

  1. Pandas позволяет несколько форматов экспорта, включая to_json(), to_pickle() и to_csv(), используемые в приведенном выше примере, это отличная библиотека для создания нескольких типов анализ/визуализация данных вашей библиотеки. Я бы определенно посоветовал вам изучить панд, если вы можете.
  2. Этот ответ должен дать вам отправную точку, убедитесь, что вы прочитали документы, если что-то не так, GL .
person Pedro Lobito    schedule 31.03.2019
comment
Добро пожаловать @sarah. Если мой ответ помог вам, пожалуйста, примите его как правильный ответ. - person Pedro Lobito; 01.04.2019