Python mueve archivos de directorios que coinciden con los criterios dados al nuevo directorio

Tengo un directorio que se parece a esto:

.
├── files.py
├── homework
├── hw1
│   └── hw1.pdf
├── hw10
│   └── hw10.pdf
├── hw13
│   └── hw13.pdf
├── hw2
│   └── hw2.pdf
├── hw3
│   └── hw3.pdf
├── hw4
│   └── hw4.pdf
├── hw7
│   └── hw7.pdf
├── IntroductionToAlgorithms.pdf
├── p157
│   └── Makefile
├── p164
│   └── project
├── p171
│   ├── project
├── p18
│   └── project
├── p246
│   ├── project
├── p257
│   ├── project
├── p307
│   ├── project
├── p34
│   └── project
├── p363
│   ├── project
├── p431
│   ├── bit_buffer.h
├── p565
│   ├── project
├── p72
│   └── project
├── README.md
└── tree.txt

Quiero mover todos los archivos dentro de las carpetas hwN a la tarea. La tarea de ejemplo contendrá hw1.pdf -> hw13.pdf y no mantendrá ninguna de las carpetas llamadas hwN Donde N es una de las carpetas de tareas numeradas.

Tengo un script de Python que casi funciona:

files.py:

import os
import shutil

if not os.path.exists("homework"):
    os.makedirs("homework")
    print("created hw directory")

source='/home/kalenpw/Documents/School/2017Spring/CS3385/homework/'

files = os.listdir()

for f in files:
    if f.startswith("hw") and len(f) > 2:
        #This line works but it keeps the subfolders where I want the files directly in ./homework
        shutil.move(f, source)
#        for eachFile in os.listdir(f):
#           #Ideally this would move all the files within the hw folders and move just the file not the folder to my source
#            shutil.move(eachFile, source)

Sin embargo, el código comentado que estoy tratando de usar para mover solo los archivos y no las carpetas da como resultado este error:

Traceback (most recent call last):
  File "/usr/lib/python3.5/shutil.py", line 538, in move
    os.rename(src, real_dst)
FileNotFoundError: [Errno 2] No such file or directory: 'hw13.pdf' -> '/home/kalenpw/Documents/School/2017Spring/CS3385/homework/hw13.pdf'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "files.py", line 17, in <module>
    shutil.move(eachFile, source)
  File "/usr/lib/python3.5/shutil.py", line 552, in move
    copy_function(src, real_dst)
  File "/usr/lib/python3.5/shutil.py", line 251, in copy2
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "/usr/lib/python3.5/shutil.py", line 114, in copyfile
    with open(src, 'rb') as fsrc:
FileNotFoundError: [Errno 2] No such file or directory: 'hw13.pdf'

Para resumir, ¿cómo puedo mover todos los archivos contenidos en hw1, hw2, etc. a ./homework sin mover las carpetas mismas? Si esto esxy problema y de hecho hay una manera más fácil de hacer esto, por favor apúntame en esa dirección También sí, me doy cuenta de que en la cantidad de tiempo que he pasado depurando y escribiendo esto, podría haberlo hecho fácilmente a mano, pero ese no es el punto.

Gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta