Once we have learned any programming language, the next task is to become familiar with the most common activities required to get our jobs done.
In these lessons, we will draw upon our experience with Python 3 in order to learn how to re-use the work of others developers, no matter which programming language they use. By leveraging the inter-process communication abilities common between all modern operating systems, we will discover the common denominator required for inter-program cooperation. Not only are these techniques universally available, but also required to speed-up cPython - the most used version of Python - by circumventing the Global Interpreter Lock (GIL.)
From passing startup-parameters to “piping” data in and out of other applications, as well as learning how to start, stop, and share data between both custom & popular applications, professionals interested in discovering cross-platform software automation and testing techniques will find these lessons truly valuable.
A process running all-by-itself is like a horse running all alone. While we might enjoy the ride, the imagination begins to wonder what many horses - working together - might accomplish!
Upon the realization that any computer system has many other types of processes we are able to work with, the imagination is now set so as to enable our Python applications to do many fascinating things. -From connecting to web sites & downloading data, to sending us text messages or load-balancing our workstations, there is never a need to re-invent the wheel when there are so many other vehicles for us to use.
In this training we will cover the width & breadth of what you will need to invoke & and manage build-in "shell" operations, as well as external programs.
We will review the major reasons why cPython users are most likely to want to use multiple processes. In this lesson we will also create a program that will help us enumerate all of the locations found along our default operating-system path. We will also review how to determine which type of (i.e. Windows or POSIX) operating system we are running on.
By chaining inputs and outputs together, we discussed how software can fit together.
In as much as both Windows and POSIX each have a basic sorting capability, our first cross-platform task will be to re-use the external command from Python.
In this lesson, we will:
Write a cross-platform program to re-use the SORT command on 'nt' and 'posix.'
Learn how to send data to an external command using the standard-output
Discover how to retrieve the exit() code from an external application
Many software developers are surprised to discover that many commands we use every day are actually “built in” to a command interpreter.
While a source of confusion for many new software developers, in this lesson we will demystify the process by demonstrating how to invoke built-in commands from Python 3.
The goals for this lesson are to:
Understand the difference between external and commands
Learn how to interface with non-shell programs to automate command-line interfaces
When used as a “shell tool,” Python can be used to run everything from simple Python expressions, to complete applications & testing scenarios.
In this lesson, we will:
Learn how to implicitly and explicitly use Popen to run Python files
Learn how call and external script
Discover how to use Python as a “shell” or “command line” processor.
The name “recursion” sounds complicated, but the idea of iteratively processing items such as nested folders is as simple as it is power full.
• Learn how call an parameterized, external, Python Script .
• Discover how to “filter” local directory content .
• Write a program to count files in a directory.
• Create & call a program that can iteratively search, tally, and report on directory trees & content.
Review & test a parent / child set of processes. Designed to leverage the operating-system to cooperatively work together, feel free to modify the re-usable duo to power your own GIL-avoiding inspirations!
I've over 30 years of experience.
"Mr. Nagy presently earns his keep in the world by providing technology mentoring, training, hands-on consulting / software development, & customized content creation services.
Mr. Nagy has served as both a Principal Trainer & Principal Software Development Engineer. His "Linked In" recommendations testify to a 30+ year track record of excellent personal communication skills, design & analysis abilities, as well as superior consulting & training results.
Though tenured, Mr. Nagy is most often described as being extremely technical, yet very personable & easy to get along with.
The author of over 26 Open-Source Projects, Mr. Nagy's hands-on experience includes topics such as C/C++, Python, SO / SOA, Security, Testing, UML, Java/JEE, .NET (C# and VB.NET), LAMP, Hadoop, jQuery, HTML 5, Android, and more. Maintaining techniques in embedded engineering, Mr. Nagy has experience creating custom training for such expert-level, high-performance technologies as IBM Rhapsody.
Technically speaking, "... from the best Service-Oriented practices to embedded engineering, I maintain an extensive hands-on skill set. From Java and C/ C++, C#, PHP, Python, Ruby, HTML 5 and Web 2.0, I have both designed and implemented architectures from the UI / RIA to the server, well into the RFC Layer. …
I also have over 150 successful training / mentoring, publication, and speaking engagements to my credit. Recent experience includes such state-of-the art technologies as Hadoop, Android, WSO2, and TFS."