วิธีสร้างไฟล์ 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
ยินดีต้อนรับครับ @sara. หากคำตอบของฉันช่วยคุณได้ โปรดยอมรับว่าเป็นคำตอบที่ถูกต้อง - person Pedro Lobito; 01.04.2019