python - 使用 python 或 bash 按时间戳将音频文件复制到新文件夹

标签 python linux bash audio

您好,我一直在想办法在我们的存档服务器中恢复我们的音频文件。它们分散在该服务器的几个子目录中,命名模式有所不同。它们大多位于“/media/recordings”目录中。

以下是我所说的几个例子。

YYYY_XXX) XXX-XXXX_20151125-094056_10931-all
YYYYYYY_XXX-XXX-XXXX _20151013-094634_10896-all
YYYY_(XXX) XXX-XXXX_20151116-120923_10215-all
YYYYY_ XXXXXXXXXX_20160307-152940_11033-all

音频文件都是 .wav 和 .mp3,它们的文件名中都有一个时间戳,我试图将其隔离并用作模型以切入 YYYY/MM/DD 以创建子目录。我读过一些其他人试图用 bash 组织那里的文件,并试图调整一些东西来工作,但似乎无法想出一个工作脚本。请帮忙。

我想从/media/recordings/MP3 和 ORIG 中复制此文件,不包括/media/recording/ORIG/sorted 到“/media/recordings/ORIG/sorted”作为目标位置。并按年/月/日子目录对这些文件进行排序。

这是一台装有 python 2.6.6 的较旧的 centos 机器。我试图调整一些可以转到目录并递归导航子目录的东西,但我的时间有限,无法解决这个问题,我们将不胜感激。

最佳答案

如果我了解您的需求:

#!/bin/bash 
source_dir="/media/recordings"
dest_dir="/media/recordings/ORIG/sorted"
for file in ${source_dir}/{MP3,ORIG}/*; do
    etime=$(stat -c %Y "$file")
    fdate=$(date -d @$etime +"%Y-%m-%d")
    if [[ ! -d "$dest_dir/$fdate" ]]; then
        mkdir "$dest_dir/$fdate"
        mv "$file" "$dest_dir/$fdate"
    else
        mv "$file" "$dest_dir/$fdate"
    fi
done

该脚本将搜索 source_dir/MP3 和 ORIG 目录中的所有文件,并将它们移动到按日期排序的 dest_dir/YYYY-MM-DD 位置。文件名和目录名中不允许使用字符/。

$ tree media/recordings/ORIG/sorted
├── 2014-10-30
│   └── song.mp3
├── 2015-11-07
│   └── song.wav
├── 2015-11-12
│   └── another_song.mp3
├── 2017-07-11
│   └── another_song.wav
├── 2017-09-06
│   ├── song-1.mp3
│   ├── song-2.wav
│   └── song-3.mp3

关于python - 使用 python 或 bash 按时间戳将音频文件复制到新文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46066134/

相关文章:

Python OpenCV 无法处理视频

linux - 使用 shell 脚本将两个命令的输出合并到一个表中

从消息队列接收后无法使用shm_open

linux - 在 bash 中比较 *nix 时间戳的最佳方法

python TCP套接字在recv方法上阻塞

python - 根据第二个系列的值和这些最接近匹配的位置(索引)查找系列的元素方面最接近的匹配

python - 在 Python 中释放通过 ctypes 分配的内存

linux - 使用 qsub 提交可执行文件+输入文件以创建多个作业

macos - 如何通过在 Mac OS X 中给出进程名称来获取进程的 PID?

linux - 如何使用 awk bash 根据日期进行调用