Python Django:为俄语lang复制模板标签

# -*- coding: utf-8 -*-
from django import template

register = template.Library()

@register.filter
def rupluralize(value, arg="дурак,дурака,дураков"):
    	args = arg.split(",")
        if not value:
		return args[2]
	number = abs(int(value))
        a = number % 10
        b = number % 100

        if (a == 1) and (b != 11):
            return args[0]
        elif (a > 1) and (a < 5) and ((b < 10) or (b > 20)):
            return args[1]
        else:
            return args[2]

Python 文件时间日期时间

# recupete le mtime d'un fichier
import os
file="c:\gce.png"
mtime = os.stat(file).st_mtime

# le transforme en time
import time
print time.localtime(mtime)

# le transforme en datetime
import datetime
print datetime.datetime.fromtimestamp(mtime)

Python 多进程线程

#!/usr/bin/python
# -*- coding: utf-8 -*-

from multiprocessing import Process, Queue  #python2.6
def _pq(q,func,args,kargs):q.put(func(*args,**kargs))
class RunProc(object):
    def __init__(self,func, args=None,kargs=None):
        if args is None: args=()
        if kargs is None: kargs={}
        self.__q = Queue()
        self.__p = Process(target=_pq, args=(self.__q,func,args,kargs))
        self.__p.start()
    def isRunning(self):
        return self.__p.is_alive()
    def get(self):
        if not hasattr(self,"_ret"):
            self.__p.join()
            self._ret=self.__q.get()
        return self._ret
    def kill(self):
        if self.isRunning():
            self.__p.terminate()


#~ import thread
#~ class RunProc(object):
    #~ def __init__(self,func, args=None,kargs=None):
        #~ if args is None: args=()
        #~ if kargs is None: kargs={}
        #~ def _pq(self,func,args,kargs):
            #~ self.__lock.acquire()
            #~ self.__ret = func(*args,**kargs)
            #~ self.__lock.release()
        #~ self.__lock=thread.allocate_lock()
        #~ thread.start_new_thread(_pq,(self,func,args,kargs))
        #~ while not self.isRunning(): pass
    #~ def isRunning(self):
        #~ return self.__lock and self.__lock.locked()
    #~ def get(self):
        #~ if self.__lock:
            #~ self.__lock.acquire()
            #~ self.__lock=None
        #~ return self.__ret
    #~ def kill(self):
        #~ pass





def work(s,n,cb=None):
    import time
    time.sleep(s)
    l=range(n)
    if cb:  cb(l)
    return l


def mycb(l):
    print "***cb:",l

if __name__ == '__main__':
    p2=RunProc( work, (2,6) )
    assert p2.isRunning()
    v1=p2.get()
    assert not p2.isRunning()
    v2=p2.get()
    assert v1==v2
    assert not p2.isRunning()

    p1=RunProc( work, (3,13),{"cb":mycb} )
    p2=RunProc( work, (2,6) )

    print p1.isRunning()
    print p2.isRunning()

    print p1.get()
    print p2.get()

Python 线程计时器

from threading import *

def timer():
    # do code here
    
    t = Timer(10*60.0, timer)   # toutes les 10 minutes
    t.start()

timer() # run it

Python sqlite用例

import sqlite3

c = sqlite3.connect('medialib.db')
sql="SELECT name FROM sqlite_master WHERE type='table';"
r=c.execute(sql)
for row in r.fetchall():
    print row

cur = c.cursor()
cur.execute('CREATE TABLE foo (o_id INTEGER PRIMARY KEY, fruit VARCHAR(20), veges VARCHAR(30))')
con.commit()
cur.execute('INSERT INTO foo (o_id, fruit, veges) VALUES(NULL, "apple", "broccoli")')
con.commit()
print cur.lastrowid

Python 从多个类动态继承

class Slave1(object):
    t1="1"
class Slave2(object):
    t2="2"

class MetaClass(type):
    def __new__(meta, classname, bases, classDict):
        bases = tuple([Slave1, Slave2])
        return type.__new__(meta, classname, bases, classDict)

class Master(object):
    __metaclass__ = MetaClass

m=Master()
print m.t1
print m.t2

Python 获取IP地址(仅限linux)

def getIpAddress(self, ifname):
	s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
	return socket.inet_ntoa(fcntl.ioctl(
		s.fileno(),
		0x8915,
		struct.pack('256s', ifname[:15])
	)[20:24])

Python Pexpect示例

import pexpect
password = open("config/qlive.auth", "r").readline().strip()
p = pexpect.spawn("sudo bash install_dynamicctrl.sh")
i = p.expect([".ssword:*", pexpect.EOF])
p.sendline(password)

Python Python挑战等级4 - 稳定

print """


****************************************************
****************************************************
**************** 22.14 29/09/09 ********************                  
***** ODIS [ OPEN DYNAMIC INFORMATION SYSTEM ] *****
****************************************************
****************************************************

"""

import urllib
import re

url = 'http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing='

sdigits = "12345"

print """

GNU PUBLIC LICENCE

~~~~~ Resolving nothings ~~~~~~

             !!!!CAREFULL!!!! KERNEL PANIC! ~

     IT MAY CAUSE A OVERCLOCK OF YOURS SYSTEM!!!
     If this is the first time you see this message, please contact
     the tecnical especialized of VisualBasic Programming.

     If you can read this massenge, please stop everything that your doing
     and then reboot the system!

     System will be disconnected in 10s.

"""

print """




**********************************
******* First fase engaged *******
**********************************

"""




for content in range(18):

 content = urllib.urlopen (url + sdigits).read()  
 print content

 sdigits = ''.join([letter for letter in content if letter.isdigit()])

print """

**********************************
****** Second fase engaged *******
**********************************

"""

sdigits = "53522"

for content in range(181):

 content = urllib.urlopen (url + sdigits).read()  
 print content

 sdigits = ''.join([letter for letter in content if letter.isdigit()])

print """

**********************************
******* Final fase engaged *******
**********************************

"""

sdigits = "46059"

for content in range(10):

 content = urllib.urlopen (url + sdigits).read()  
 print content

 sdigits = ''.join([letter for letter in content if letter.isdigit()])


print" "
print" "
print" "
print" "
print "! Your final nothing is", sdigits

import time
time.sleep(60)

Python PyGTK和GTK + / Glade导入

try:
    import pygtk
    pygtk.require("2.0")
except:
    pass
try:
    import gtk
    import gtk.glade
except:
    import sys
    sys.exit(1)