Cara membuat file csv yang memberi label kumpulan data tidak terstruktur sesuai dengan nama file

Saya memiliki kumpulan data tidak terstruktur yang terdiri dari file audio. Bagaimana cara saya mengulangi semua file dalam direktori tertentu (termasuk semua file di subfolder saya) dan memberi label sesuai dengan nama filenya lalu menyimpan informasi ini dalam file CSV?

Saya mengharapkan file CSV terlihat seperti iniFile CSV:

masukkan deskripsi gambar di sini


person Sarah    schedule 31.03.2019    source sumber
comment
Bisakah Anda menjelaskan: memberi label sesuai dengan nama filenya? Apakah Anda memerlukan label sebagai karakter pertama dan terakhir dari nama file?   -  person Pedro Lobito    schedule 01.04.2019
comment
tidak, labelnya tidak harus terlihat seperti ini. Tujuannya adalah saya ingin mendapatkan nama file dan membuat label sesuai keinginan saya (untuk semua file saya) dan kemudian menyimpan informasi ini dalam file csv   -  person Sarah    schedule 01.04.2019


Jawaban (1)


Tujuannya adalah saya ingin mendapatkan nama file dan membuat label sesuai keinginan saya (untuk semua file saya) dan kemudian menyimpan informasi ini dalam file csv

Anda dapat menggunakan glob, dan panda to_csv() untuk tugas ini, yaitu:

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

Contoh 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
...

Catatan:

  1. Pandas mengizinkan beberapa format ekspor, termasuk to_json(), to_pickle() dan to_csv() digunakan pada contoh di atas, ini adalah perpustakaan yang bagus untuk membuat beberapa jenis analisis/visualisasi data perpustakaan Anda. Saya sangat menyarankan Anda untuk belajar panda jika Anda bisa.
  2. Jawaban ini seharusnya memberi Anda titik awal, pastikan Anda membaca dokumen jika ada yang tidak beres, GL .
person Pedro Lobito    schedule 31.03.2019
comment
Sama-sama @sarah. Jika jawaban saya membantu Anda, terimalah itu sebagai jawaban yang benar. - person Pedro Lobito; 01.04.2019