The first way you could copy the file is over ssh. If you've already got access to the Pi via Putty then the server-side is already working. Just grab the
pscp.exe binary from the official site. Watch out there's a similar one called
pSftp which is probably not what you want.
Then do the copy like this:
Windows> pscp c:\documents\info.txt pi@raspberry:/tmp/info.txt
There's a step-by-step guide here.
For recursive copies of a directory, you sould use the
Windows> pscp -r c:\documents\ pi@raspberry:/home/pi
This one copies the whole
c:\documents folder to your home directory on the Pi.
The command uses encryption by default.
There's probably a number of ways to implement this, which could have pros or cons depending on your requirements.
You could use Python's native low level networking interface,
socket for device to device communication. One tutorial demonstrates a configuration to download files from EC2. This would probably be benificial to learning Python.
Won't be encrypted by default.
With a web framework.
If you want something that be accessed over HTTP, then you may look at a framework like Flask to implement a file upload facility. A very basic script I made can accept a single file-upload with the following
curl -i -X POST -F 'file=@upload_me.txt' "http://localhost:5000/upload" -H 'ContentType: multipart/form-data'
Or you could go further with it and add HTML templates, so it can be accessed through a web-browser, providing a file upload form.
This configuration is not encrypted (but can be with SSL certs from somewhere like Let's Encrypt, you'd also eventually run the application with
gunicorn instead of Python, and preferably behind