방법이 있습니다rsync m3u 재생 목록대상 디렉터리를 입력합니다.
재생 목록 순서와 일치하도록 파일을 정렬하도록 목록을 처리하고 출력에 번호를 매기는 방법은 무엇입니까?
예를 들어 m3u:
/music/song-yellow.mp3
/music/song-red.mp3
/music/song-blue.mp3
/rsync 재생 목록 콘텐츠가 복사되어 파일 이름이 다음으로 변경됩니다.
/dest-path/01-song-yellow.mp3
/dest-path/02-song-red.mp3
/dest-path/03-song-blue.mp3
이렇게 하면 믹스테이프 재생 목록을 만들고 사람들에게 복사할 수 있습니다.
어떤 제안이라도 감사하겠습니다.
답변1
다음과 같이 시도해 보세요.
#!/usr/bin/python
FILE = '/home/my-home/my-playlist.m3u'
DIR = '/some-target-directory'
import os.path, shutil, sys
for i, s in enumerate(open(FILE)):
s = s.rstrip()
try:
shutil.copy(s, os.path.join(DIR, '%03d-%s' % (i+1, os.path.basename(s))))
except IOError, e:
sys.stderr.write('warning: %s\n' % e)
# End of file.
물론 필요에 따라 설정하십시오 FILE
. DIR
Python을 과도하게 사용한 것에 대해 사과드립니다. 쉘이 특별한 의미를 부여하기를 좋아하는 모든 문자를 이스케이프 처리하지 않아도 되는 데 도움이 됩니다.
스크립트는 I/O 오류로 인해 실패하지 않으며 경고만 인쇄합니다. 그 외에는 온전한 검사가 없습니다(보시다시피). 또한 M3U의 의견도 배제되지 않습니다. 그러나 NUL
파일 시스템 수준의 특수 문자인 s와 슬래시를 제외하고는 사용자가 입력한 모든 문자를 복사합니다 .