리눅스에서 MP3 중복 파일 삭제 python 스크립트

in python •  7 years ago  (edited)

안녕하세요 

아이디는 d7795 로 쓰고 있지만 닉은 공맹이로 쓰고 있는 공맹이 입니다.

이번 글에서는 리눅스에서 중복 되어 있는 mp3 파일을 삭제 시키는 python 스크립트를 하나 만들어 볼려고 합니다. 

리눅스용이긴 하지만 윈도우 용으로도 포팅을 하여 다음 글에 올리도록 하곘습니다. 

전체 소스는 아래와 같습니다.


# -*- coding: utf-8 -*-


import eyed3

import os


mpdir = "mp3 경로"

# eyed3.log.setLevel("ERROR")


os.chdir(mpdir)

os.system('find . -iname "*.mp3" -execdir mid3iconv -e cp949 {} \;')

filenames = os.listdir(mpdir)


mp3list = []

mp3artist = []

removefilepath = []


for file in filenames:

audiofile = eyed3.load(mpdir+file)

title = audiofile.tag.title

artist = audiofile.tag.album_artist


check = 0

for mp3_i in range(0, len(mp3list)):

if mp3list[mp3_i] == title:

if mp3artist[mp3_i] == artist:

removefilepath.append(mpdir + file)

check = 1


if check == 0:

mp3list.append(title)

mp3artist.append(artist)


for path in removefilepath:

os.remove(path)

print path


설정 되어 있는 폴더를 하나하나씩 확인 하면서 각각의 태그에 있는 타이틀 , 아티스트를 리스트에 넣고 리스트에 있는 값과 폴더에 있는 값을 비교 하여 중복 될시 삭제 시키는 프로그램 입니다.

조잡 하긴 하지만 python을 이용해서 mp3 파일중 중복된 태그를 가지고 있는 파일들을 삭제 하는 프로그램을 만들어봤습니다.  아직 베타 버전이고 좀더 수정 해야 하는 부분이 여러군대 있습니다. 혹시나 제가 생각 하지 못하고 있는 버그가 존재 한다면 알려 주시길 바랍니다.

파이썬에 대해서 모르시는 분들을 위해서 종종 파이썬 강의도 올려 보도록 하겠습니다. 

글솜씨가 없어서 조금 난잡한 면이 없잖아 있는거 같습니다. 혹시나 궁금 하시거나 고쳤으면 하는 부분이 있으시면 리플로 남겨 주시면 참고 하겠습니다. 


다음글에서는 좀더 정돈 된 글에서 뵙도록 하겠습니다..

에공 힘들다.. 책 쓰시는 분들은 정말 대단 하신거 같습니다 ㅠㅠ

* 혹시 표를 만들수는 없는건가요..? 






Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Congratulations @d7795! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

You published your First Post
You made your First Vote
You made your First Comment
You got a First Vote
Award for the number of upvotes
Award for the number of upvotes received

Click on any badge to view your own Board of Honnor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!