Skip to content

Instantly share code, notes, and snippets.

@Niedzwiedzw
Created September 13, 2019 14:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Niedzwiedzw/00d5f32fed4fdef11b6cce62cb4d3a86 to your computer and use it in GitHub Desktop.
Save Niedzwiedzw/00d5f32fed4fdef11b6cce62cb4d3a86 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python3
import typing as t
from os import listdir, environ, getcwd, mkdir
from os.path import split
from shutil import copyfile
from subprocess import check_output as run
from pprint import pprint
USER = environ['USER']
H6_RECORDER_PATH = f'/run/media/{USER}/H6_SD'
TARGET_DIR = getcwd()
def full_path(directory: str, file: str) -> str:
return f'{directory}/{file}'
def mkdir_force(target: str):
try:
mkdir(target)
except FileExistsError:
pass
def copy_to_target(directory: str):
for file in tracks(directory):
filename = split(file)[-1]
target_dir = f'{TARGET_DIR}/{split(directory)[-1]}'
print('creating', target_dir)
mkdir_force(target_dir)
print(f'{file} => {target_dir}')
copyfile(file, full_path(target_dir, filename))
def parent_directories():
return [full_path(H6_RECORDER_PATH, f) for f in listdir(H6_RECORDER_PATH) if f.startswith('FOLDER')]
def pick_folder(folders: t.List[str]):
pprint(list(enumerate(folders)))
return folders[int(input('which subdir? (number)\n>> '))]
def tracks(directory: str):
return (full_path(directory, tr) for tr in listdir(directory) if tr.endswith('.WAV'))
def main():
subdir = pick_folder(parent_directories())
track_dirs = [full_path(subdir, td) for td in listdir(subdir)]
for td in track_dirs:
copy_to_target(td)
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment