( ** Python Certification Training: https://www.edureka.co/python ** )
This Edureka PPT on Advanced Python tutorial covers all the important aspects of using Python for advanced use-cases and purposes. It establishes all of the concepts like system programming , shell programming, pipes and forking to show how wide of a spectrum Python offers to the developers.
Python Tutorial Playlist: https://goo.gl/WsBpKe
Blog Series: http://bit.ly/2sqmP4s
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
3. Python Certification Training https://www.edureka.co/python
Agenda
Introduction 01
Introduction to
Advanced Python
Getting Started 02
Concepts 03
Practical Approach 04
Python and Shell
Looking at code to
understand theory
Key Concepts in Python
5. Python Certification Training https://www.edureka.co/python
Introduction To Advanced Python
Python is an interpreted, high-level, general-purpose
programming language.
What is Python?
Advanced: Other
Languages
Learning
Advanced Python
6. Python Certification Training https://www.edureka.co/python
What Is Advanced Python
Computer Science5
Numerical Compute6
Databases7
Sys Programming 1
Graph Theory 2
Mathematics 3
Python spreading its wings across multiple dimensions and
use-cases in many fields
What is “Advanced”?
7. Python Certification Training https://www.edureka.co/python
Introduction To System Programming
Advanced Python Tutorial
8. Python Certification Training https://www.edureka.co/python
System Programming
Sys - Module
Hello Advanced Python!
Import sys
Provides information about constants, functions
and methods of the Python interpreter.
Data streams
stdout stderrstdin
>>> import sys
>>> sys.version
'2.6.5 (r265:79063, Apr 16 2010,
13:57:41) n[GCC 4.4.3]'
>>> sys.version_info
(2, 6, 5, 'final', 0)
>>>
9. Python Certification Training https://www.edureka.co/python
Command – Line Arguments
Sys - Module
Command Line
argcargv
#!/usr/bin/python
import sys
# it's easy to print this list of course:
print sys.argv
# or it can be iterated via a for loop:
for i in range(len(sys.argv)):
if i == 0:
print "Function name: %s" % sys.argv[0]
else:
print "%d. argument: %s" % (i,sys.argv[i])
$ python arguments.py arg1 arg2
['arguments.py', 'arg1', 'arg2']
Function name: arguments.py
1. argument: arg1
2. argument: arg2
$
10. Python Certification Training https://www.edureka.co/python
Changing Output Behaviour
Sys - Module
Python
Interactive Mode
Get Output
Write expression
>>> import sys
>>> x = 42
>>> x
42
>>> import sys
>>> def my_display(x):
... print "out: ",
... print x
...
>>> sys.displayhook = my_display
>>> x
out: 42
>>>
>>> print x
42
Behaviour of print() not changed
11. Python Certification Training https://www.edureka.co/python
Standard Data Streams
Sys - Module
>>> import sys
>>> for i in (sys.stdin, sys.stdout, sys.stderr):
... print(i)
...
', mode 'w' at 0x7f3397a2c150>
', mode 'w' at 0x7f3397a2c1e0>
>>>
SHELLstdin stdout
stderr
>>> import sys
>>> print "Going via stdout"
Going via stdout
>>> sys.stdout.write("Another way to do it!n")
Another way to do it!
>>> x = raw_input("read value via stdin: ")
read value via stdin: 42
>>> print x
42
>>> print "type in value: ", ; sys.stdin.readline()[:-1]
type in value: 42
'42'
>>>
12. Python Certification Training https://www.edureka.co/python
Redirections
Sys - Module
import sys
print("Coming through stdout")
# stdout is saved
save_stdout = sys.stdout
fh = open("test.txt","w")
sys.stdout = fh
print("This line goes to test.txt")
# return to normal:
sys.stdout = save_stdout
fh.close()
SHELLstdin stdout
stderr
import sys
save_stderr = sys.stderr
fh = open("errors.txt","w")
sys.stderr = fh
x = 10 / 0
# return to normal:
sys.stderr = save_stderr
fh.close()
15. Python Certification Training https://www.edureka.co/python
Python And Shell
A piece of software that provides an interface for a user to some
other software or the operating system
What is “Shell”?
SHELL
GUICUI
Bourne-Shell
C-Shell
Bash Shell
16. Python Certification Training https://www.edureka.co/python
System Programming
The activity of programming system components or system
software
What is “SP”?
“System focussed programming”
Modules
sys os
Simple and clear
Well structured
Highly flexible
Advantages
17. Python Certification Training https://www.edureka.co/python
The ‘os’ Module
The os module allows platform independent programming by
providing abstract methods
What is “os” module?
Executing Shell scripts with os.system()
import os
def getch():
os.system("bash -c "read -n 1"")
getch()
from msvcrt import getch
18. Python Certification Training https://www.edureka.co/python
The ‘os’ Module
Executing Shell scripts with os.system()
import os, platform
if platform.system() == "Windows":
import msvcrt
def getch():
if platform.system() == "Linux":
os.system("bash -c "read -n
1"")
else:
msvcrt.getch()
print("Type a key!")
getch()
print("Okay")
Subprocess Module
os.system
os.spawn*
os.popen*
20. Python Certification Training https://www.edureka.co/python
Fork In Python
What is Forking?
import os
def child():
print('nA new child ', os.getpid())
os._exit(0)
def parent():
while True:
newpid = os.fork()
if newpid == 0:
child()
else:
pids = (os.getpid(), newpid)
print("parent: %d, child: %dn"
% pids)
reply = input("q for quit / c for
new fork")
if reply == 'c':
continue
else:
break
parent()
Process
Copy of Process
Parent
Child
Starting independent processes with fork()
exec*() function
23. Python Certification Training https://www.edureka.co/python
What Is A Thread?
The smallest unit that can be scheduled in an operating systemWhat is a thread?
How to create a thread?
By forking a computer program in
two or more parallel tasks
Types of threads
Kernel threads User threads
Implemented in kernel NOT implemented in kernel
24. Python Certification Training https://www.edureka.co/python
What Is A Thread?
Global Variables
Process
Local variables
Code
THREAD
Local variables
Code
THREAD
Local variables
Code
THREAD
25. Python Certification Training https://www.edureka.co/python
The Thread Module
from thread import start_new_thread
def heron(a):
"""Calculates the square root of a"""
eps = 0.0000001
old = 1
new = 1
while True:
old,new = new, (new + a/new) / 2.0
print old, new
if abs(new - old) < eps:
break
return new
start_new_thread(heron,(99,))
start_new_thread(heron,(999,))
start_new_thread(heron,(1733,))
c = raw_input("Type something to quit.")
Example
26. Python Certification Training https://www.edureka.co/python
The Thread Module
from thread import start_new_thread
num_threads = 0
def heron(a):
global num_threads
num_threads += 1
# code has been left out, see above
num_threads -= 1
return new
start_new_thread(heron,(99,))
start_new_thread(heron,(999,))
start_new_thread(heron,(1733,))
start_new_thread(heron,(17334,))
while num_threads > 0:
pass
Previous example with counters for the threads
• Reading the value of num_thread
• A new int instance will be incremented or
decremented by 1
• the new value has to be assigned to
num_threads
27. Python Certification Training https://www.edureka.co/python
The Thread Module
from thread import start_new_thread, allocate_lock
num_threads = 0
thread_started = False
lock = allocate_lock()
def heron(a):
global num_threads, thread_started
lock.acquire()
num_threads += 1
thread_started = True
lock.release()
...
lock.acquire()
num_threads -= 1
lock.release()
return new
start_new_thread(heron,(99,))
start_new_thread(heron,(999,))
start_new_thread(heron,(1733,))
while not thread_started:
pass
while num_threads > 0:
pass
The solution
28. Python Certification Training https://www.edureka.co/python
Threading Module
import time
from threading import Thread
def sleeper(i):
print "thread %d sleeps for 5 seconds" % i
time.sleep(5)
print "thread %d woke up" % i
for i in range(10):
t = Thread(target=sleeper, args=(i,))
t.start()
Example
The Thread of the example doesn't do a lot, essentially it just
sleeps for 5 seconds and then prints out a message:
29. Python Certification Training https://www.edureka.co/python
Threading Module
thread 0 sleeps for 5 seconds
thread 1 sleeps for 5 seconds
thread 2 sleeps for 5 seconds
thread 3 sleeps for 5 seconds
thread 4 sleeps for 5 seconds
thread 5 sleeps for 5 seconds
thread 6 sleeps for 5 seconds
thread 7 sleeps for 5 seconds
thread 8 sleeps for 5 seconds
thread 9 sleeps for 5 seconds
thread 1 woke up
thread 0 woke up
thread 3 woke up
thread 2 woke up
thread 5 woke up
thread 9 woke up
thread 8 woke up
thread 7 woke up
thread 6 woke up
thread 4 woke up
31. Python Certification Training https://www.edureka.co/python
What Are Pipes
Introducing modularity in the program to serve one instance output as
the input to another instance and so on till solution is achieved
What are pipes?
Two kinds of pipes
Named PipesAnonymous Pipes
Exist solely within processes and are usually
used in combination with forks
P1
P2
P3
P4
32. Python Certification Training https://www.edureka.co/python
Pipes – A Classic Example
99 Bottles of Beer
Drinking is injurious to health
Ninety-nine bottles of beer on the wall, Ninety-nine bottles of beer.
Take one down, pass it around, Ninety-eight bottles of beer on the wall.
Lyrics of the song:
33. Python Certification Training https://www.edureka.co/python
Named Pipes
Called FIFOs – Creating pipes which are implemented as files.What are named pipes?
First In – First Out
A process reads from and writes to such a pipe as if it
were a regular file. Sometimes more than one process
write to such a pipe but only one process reads from it.