The vast majority of geospatial data sharing is accomplished via the internet, and Python is well equipped when it comes to networking libraries for almost any protocol. Automated data downloads are often an important step in automating a geospatial process. Data is typically retrieved from a website's Uniform Resource Locator (URL) or File Transfer Protocol (FTP) server and, because geospatial datasets often contain multiple files, data is often distributed as ZIP files.
A nice feature of Python is its concept of a file-like object. Most Python libraries that read and write data use a standard set of methods that allow you to access data from different types of resources, as if you were writing a simple file on disk. The networking modules in the Python standard library use this convention as well. The benefit of this approach...