Rabu, 23 April 2014

Oprek2 python ke-2

Sekarang kita belajar contoh-contoh python lain dengan level belajar yang berbeda, semoga bisa di ikuti ya ;)
Ok langsung saja kita mulai, seperti berikut.

Contoh di bawah ini, kita mencoba untuk membedakan antara file dan directory dengan menggunakan python.

Simpan nama file listdirfile.py
#!/usr/bin/python

import os
os.mkdir("newdir")

for item in os.listdir("."):
  • if os.path.isfile(item):
    • print item + " is a file"
  • elif os.path.isdir(item):
    • print item + " is a directory"
  • else:
    • print "unknown"

Hasil skrinsut nya dari coding di atas sebagai berikut:

Gimana, masih bisa di ikuti ya :)
Contoh di bawah ini, kita mencoba untuk menampilkan semua file dan juga contoh membuat filter terhadap file yang akan kita tampilkan dengan menggunakan python.

Simpan nama file latglob.py
#!/usr/bin/python

import os
import glob


print "contoh tampil semuanya"
for item in glob.glob(os.path.join(".", "*")):
  • print item
print "contoh tampil hanya extensi py"
for item in glob.glob(os.path.join(".", "*.py")):
  • print item

Hasil skrinsut nya dari coding di atas sebagai berikut:

Berikut nya kita belajar untuk clon dari sebuah proses yang kita buat dengan menggunakan python.

Simpan nama file fork-demo.py
#!/usr/bin/python

# fork : clonning a process
import os
def child_process():
  • print "I am the child process and my PID is : %d" %os.getpid()
  • print "The child is exiting"
def parent_process():
  • print "I am the parent process with PID is : %d" %os.getpid()
  • childpid = os.fork()

  • if childpid == 0:
    • # we are inside the child
    • child_process()
  • else:
    • # we are inside the parent process
    • print "We are inside the parent process"
    • print "Our child has the PID : %d" %childpid

  • while True:
    • pass
parent_process()

Hasil skrinsut nya dari coding di atas sebagai berikut:

Berikut nya kita belajar tentang membuat thread dengan menggunakan python. Contoh coding ini jika di eksekusi, maka akan jalan terus sampai kita menghentikan proses eksekusi nya.
Perhatikan contoh di bawah ini.

Simpan nama file thread1.py 
#!/usr/bin/python

import thread
import time

def worker_thread(id):
  • print "Thread ID %d now alive!" %id
  • count = 1
  • while True:
    • print "Thread with ID %d has counter value %d" %(id, count)
    • time.sleep(2)
    • count += 1

for i in range(5):
  • thread.start_new_thread(worker_thread, (i,))

print "Main thread going for a infinite wait loop"
while True:
  • pass

Hasil skrinsut nya dari coding di atas sebagai berikut:

Lanjut lagi belajarnya, sekarang kita belajar tentang queue dengan menggunakan python, cara kerja nya kita akan membuat thread sebanyak 3, kemudian kita akan membagi 6 aktifitas ke masing-masing thread tersebut dengan berurutan. Seperti ilustrasi di bawah ini.
1 | 2 | 3
--|---|--
0 | 2 | 3
1 | 5 | 6
4 |    |

Perhatikan contoh di bawah ini.

Simpan nama file q1.py 
#!/usr/bin/python

import threading
import Queue
import time

class WorkerThread(threading.Thread):
        # constructor, parameter awal selalu self
        def __init__(self, queue):
                threading.Thread.__init__(self)
                self.queue = queue

        # method run utk menjalankan class nya
        def run(self):
                print "In WorkerThread"
                while True:
                        counter = self.queue.get()
                        get_worker = threading.Thread.getName(self)
                        print "Ordered to sleep for %d seconds on worker %s" %(counter,get_worker)
                        time.sleep(counter)
                        print "task %d on worker %s finished" %(counter,get_worker)
                        self.queue.task_done()

queue = Queue.Queue()


# buat thread pekerja nya
for i in range(1,4):
        print "Creating WorkerThread : %d" %i
        worker = WorkerThread(queue)
        worker.setDaemon(True)
        worker.start()
        print "WorkerThread %d Created!" %i

# buat aktifitas yg akan di lakukan oleh thread pekerja nya
for j in range(7):
        queue.put(j)

queue.join()
time.sleep(0)
print "All tasks over!"

Hasil skrinsut nya dari coding di atas sebagai berikut:

Berikut nya kita belajar untuk memblok Ctrl+C agar program yang kita eksekusi tidak bisa di hentikan dengan menggunakan python :)

Simpan nama file signal1.py 
#!/usr/bin/python

import signal

def ctrlc_handler(signum, frm):
        print "Haha! you can't kill me!"

print "Installing signal handler...."
signal.signal(signal.SIGINT, ctrlc_handler)

print "Done"

while True:
        pass

Hasil skrinsut nya dari coding di atas sebagai berikut:

Berikut nya kita belajar untuk mencoba eksekusi suatu perintah di linux dengan menggunakan python :)

Simpan nama file subprocess1.py 
#!/usr/bin/python

import subprocess

subprocess.call(['ps', 'aux'])
subprocess.call(['ls', '-al'])
subprocess.check_output(['ls', '-al'])
lines = subprocess.check_output(['ls'])
print lines
line_list = lines.split('\n')
print line_list

Hasil skrinsut nya dari coding di atas sebagai berikut:

Ok cukup sampe disini dulu belajar nya ;)

Tidak ada komentar:

Posting Komentar