Remove sync.py and sync_to_nas.py scripts
This commit is contained in:
parent
b90bcb566f
commit
15720f72fb
68
sync.py
68
sync.py
|
|
@ -1,68 +0,0 @@
|
|||
import os
|
||||
import shutil
|
||||
from pathlib import Path
|
||||
import sys
|
||||
import argparse
|
||||
|
||||
def sync_files(src_path: str, dest_path: str) -> None:
|
||||
"""
|
||||
Synchronize files from source to destination directory, skipping existing files.
|
||||
|
||||
Args:
|
||||
src_path: Source directory path
|
||||
dest_path: Destination directory path
|
||||
"""
|
||||
# Convert to Path objects for easier handling
|
||||
src = Path(src_path)
|
||||
dest = Path(dest_path)
|
||||
|
||||
# Ensure source directory exists
|
||||
if not src.exists():
|
||||
raise FileNotFoundError(f"Source directory {src_path} does not exist")
|
||||
|
||||
# Create destination directory if it doesn't exist
|
||||
dest.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
# Walk through source directory
|
||||
for root, _, files in os.walk(src):
|
||||
# Convert current root to Path object
|
||||
root_path = Path(root)
|
||||
|
||||
# Calculate relative path from source
|
||||
rel_path = root_path.relative_to(src)
|
||||
|
||||
# Create corresponding destination directory
|
||||
dest_dir = dest / rel_path
|
||||
dest_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
# Copy each file
|
||||
for file in files:
|
||||
src_file = root_path / file
|
||||
dest_file = dest_dir / file
|
||||
|
||||
# Skip if destination file exists
|
||||
if dest_file.exists():
|
||||
print(f"Skipping existing file: {dest_file}")
|
||||
continue
|
||||
|
||||
# Copy the file
|
||||
print(f"Copying: {src_file} -> {dest_file}")
|
||||
shutil.copy2(src_file, dest_file)
|
||||
|
||||
# Usage
|
||||
# python sync.py "C:\Users\petr\OneDrive\Photos\Auto-saved\2024\11" "D:\Photos\OneDrive-Photo\2024\11"
|
||||
# python sync.py /path/to/source /path/to/destination
|
||||
if __name__ == "__main__":
|
||||
# Set up argument parser
|
||||
parser = argparse.ArgumentParser(description='Synchronize files from source to destination directory')
|
||||
parser.add_argument('src', help='Source directory path')
|
||||
parser.add_argument('dest', help='Destination directory path')
|
||||
|
||||
# Parse arguments
|
||||
args = parser.parse_args()
|
||||
|
||||
try:
|
||||
sync_files(args.src, args.dest)
|
||||
except Exception as e:
|
||||
print(f"Error: {e}", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
Loading…
Reference in New Issue