Python Copying File and Directories

From rbachwiki
Jump to navigation Jump to search

Move similar files to another folder

'Move liked files and open folder in explorer

import os
import shutil
source = "C:\\Users\\sales\\Downloads\\"
sourcefiles = os.listdir(source)
dest = "D:\\karaoke_rename\\rename\\"
for file in sourcefiles:
    if file.endswith('.mp4'):
        shutil.move(os.path.join(source,file), os.path.join(dest,file))


os.startfile("D:\karaoke_rename")
os.system("python3 D:\\karaoke_rename\\rename\\rename_video_karaoke.py")

Cleanup download folder by moving similar files to assigned folder

import os
import shutil
import fnmatch

src = "C:\\Users\\sales\\Downloads\\"
os.chdir(src)

ftype = ["*.pdf", "*.exe",
         "*.txt","*.jpg",
         "*.png","*.xlsx",
         "*.xls","*.docx",
         "*.doc","*.ppt",
         "*.pptx","*.zip",
         "*.jpeg","*.iso"]
dest = [src + "pdf",     src + "exe",
        src + "txt",     src + "images",
        src + "images",  src + "office",
        src + "office",  src + "office",
        src + "office",  src + "office",
        src + "office",  src + "zip",
        src + "images",  src + "iso"]

files = os.listdir(src)
print(files)
def clean():
     for ftype1, dest1 in zip(ftype,dest):
          for f in files:
               if fnmatch.fnmatch(f,ftype1)==True:
                    full_file_name = os.path.join(src,f)
                    if os.path.isfile(full_file_name):
                         shutil.move(full_file_name, dest1)
                         print("[",full_file_name,"]",  " - " ,"[" ,dest1,"]")
       
clean()


Rename Files: example1

from datetime import datetime
from pathlib import Path
import os
## This script will rename files and move them into another folder
our_files = Path("C:\\Users\\sales\Desktop\youtubedl\\test")

for file in our_files.iterdir():
    if file.suffix != '.cdg' and file.is_file: #make sure its a file and not a directory
        directory = file.parent
        extension = file.suffix
        old_name = file.stem
        artist, title = old_name.split('-')
        artist = artist[4:].lstrip()
        new_name = f'{artist}-{title}{extension}'
       
        newpath_name = 'kmp3files'
        # will create a new path 
        new_path = our_files.joinpath(newpath_name)
        if not new_path.exists():
            new_path.mkdir()
        new_file_path = new_path.joinpath(new_name)
        file.rename(new_file_path)

       # print(new_name)
        print(new_path)

Rename Files: Example 2

import os
import re
#os.chdir('D:\\test\\rename')
i = input("enter starting value: ")
a = open('output.txt', 'w')
def video(i):
    for f in os.listdir():
        if f.endswith('.mp4'):
            print("--")
            f_name, f_ext = os.path.splitext(f)
            size = len(f)
            f_name = f_name.replace('(Video_Karaoke_with_a_black_background)', ' (Karaoke) ')
            f_name = f_name.replace('_', ' ')
            f_name = f_name[:- 8].strip()
            n_name = "{} ".format(i) + f_name + f_ext
            i = int(i) + 1
            os.rename(f, n_name)
            a.write(str(f_name) + os.linesep)
            print(n_name)

video(i)

Copying a single file

import shutil

src_path = r"C:/Users/jim/Dropbox/Filing Cabinet/Karaoke Stuff/newsongscode.txt"
dst_path = r"C:/Users/jim/Dropbox/All Folders/websites/msites/rb222/newsongscode.txt"
shutil.copy(src_path, dst_path)
print('copied')

Copy all files from a directory

import os
import shutil

source_folder = r"E:\demos\files\reports\\"
destination_folder = r"E:\demos\files\account\\"

# fetch all files
for file_name in os.listdir(source_folder):
   # construct full file path
   source = source_folder + file_name
   destination = destination_folder + file_name
   # copy only files
   if os.path.isfile(source):
       shutil.copy(source, destination)
       print('copied', file_name)

Copy Entire Directory

import shutil

source_dir = r"E:\demos\files\reports"
destination_dir = r"E:\demos\files\account"
shutil.copytree(source_dir, destination_dir)