【问题标题】:How to create a csv file that labels unstructured dataset according to filenames如何创建根据文件名标记非结构化数据集的 csv 文件
【发布时间】:2019-08-22 02:01:59
【问题描述】:

我有一个由音频文件组成的非结构化数据集。如何遍历给定目录中的所有文件(包括我的子文件夹中的所有文件)并根据文件名标记它们,然后将此信息存储在 CSV 文件中?

我希望 CSV 文件看起来像这样 CSV File:

【问题讨论】:

  • 您能否澄清一下:“根据文件名标记它们”?你需要标签是文件名的第一个和最后一个字符吗?
  • 不,标签不必像这样。目的是我想获取文件名并以我想要的方式创建标签(对于我的所有文件),然后将此信息保存在 csv 文件中

标签: python csv dataset label


【解决方案1】:

目的是我想得到 文件名并以我想要的方式创建标签(对于我的所有文件)和 然后将此信息保存在 csv 文件中

您可以使用globpandas 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 允许several export formats,包括上面示例中使用的to_json()to_pickle()to_csv(),它是一个很棒的库,可以为您的库创建多种类型的data analysis/visualization。如果可以的话,我强烈建议你学习 pandas。
  2. 这个答案应该给你一个起点,如果有问题,请确保你 read the docs,GL。

【讨论】:

  • 不客气@sarah。如果我的回答对你有帮助,请采纳为正确答案。
猜你喜欢
  • 2018-10-28
  • 1970-01-01
  • 2016-02-16
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
相关资源
最近更新 更多