Copying files locally with rsync and subprocess
You're calling now() twice - what will happen if the month changes between those two calls?  

Your code skips all files that exist, even though your linked question indicates that you need to update changed files. 

Your code checks that file is non-empty, but rsync is already doing this for you with --min-size=1.

More generally, before you code up file-sync logic, it's best to read the rsync man page and see if your problem is already solved.   Syncing files is a task full of corner cases and gotchas; life is too short for you to find them all.  Just let rsync take care of it, whenever possible.

The code below will update changed files while skipping unchanged files (as in your problem description).  If you want to copy only new, non-existing files (as in your posted code), add --ignore-existing to the rsync options.

import datetime
import subprocess

def Copy_Logs():
    Sourcedir = datetime.datetime.now().strftime("/data1/logs/%B/%b_%d_%y/")
    Destdir = "/data2/logs/"
    subprocess.call(['rsync', '-avz', '--min-size=1', '--include=*.txt', '--exclude=*', Sourcedir, Destdir ])