python 小技巧备注

  最近陆陆续续写了很多python的小脚本

  记下一点东西方便以后查阅

#1.调用sqlite3数据库
    con=sqlite3.connect(xxx)
    con.text_factory = str #防止中文乱码
    cur=con.cursor()
    cur.execute("xx")#执行语句
    con.commit()#写入数据库

#2.获取剪切板内容
def getText():
    w.OpenClipboard()
    try:
       d = w.GetClipboardData(win32con.CF_TEXT)
       w.EmptyClipboard()
       w.CloseClipboard()
       return d
    except:
       w.CloseClipboard()
       return ''
def setText(aString):
    w.OpenClipboard()
    w.EmptyClipboard()
    w.SetClipboardData(win32con.CF_TEXT, aString)  #如果是中文要重新编码
    w.CloseClipboard()

#3.随父线程结束的子线程
    tee=threading.Thread(target=read)
    tee.setDaemon(True) #设置跟随父线程
    tee.start()

#4.调用dll
    from  win32con import *
    from ctypes import *
    user32=windll.LoadLibrary('user32.dll')
    user32.MessageBoxW(0,'PASS!'.decode('utf-8'),'WIN'.decode('utf-8'),0|MB_SYSTEMMODAL)

#5.全局键盘鼠标监听 多线程
    hm = pyHook.HookManager()
    hm.KeyUp=ee #抬起函数
    hm.KeyDown = onKeyboardEvent #按下函数 返回值均要为True,不然会死锁
    hm.HookKeyboard() #开始监听
    # pythoncom.PumpMessages()#循环获取消息 GUI中不需要
    hm.UnhookKeyboard()#解除监听,不解除进程会假死,而且会无法关闭

#6.模拟键盘输入
    from win32api import *
    keybd_event(76,0,0,0)#76为相应键码,按下
    keybd_event(76,0,2,0)#抬起
def output(c=""): #输出字符串,这边符号只设置了底下几种,其他均没设置
    for j in range(len(c)):
      i=str(c[j])
      flag=0;t=0
      if i.islower(): i=i.upper();t=ord(i)
      elif i.isupper(): flag=1;t=ord(i)
      elif i=='@': flag=1;t=ord('2')
      elif i=='_': flag=1;t=189
      elif i=='-': t=189
      elif i=='.': t=190
      else: t=ord(i)
      if flag==1: keybd_event(16,0,0,0)
      keybd_event(t,0,0,0)
      keybd_event(t,0,2,0)
      if flag==1: keybd_event(16,0,2,0)

#7.获取含某字符串的窗口hwnd
hhwd=0;#hwnd
def iterate(hwnd,nouse):
    global hhwd
    if IsWindow(hwnd) and IsWindowEnabled(hwnd) and IsWindowVisible(hwnd):
        if GetWindowText(hwnd).find('Mozilla Firefox')!=-1:
           hhwd=hwnd
    return True
EnumWindows(iterate, 0)

#8.置顶窗口
windll.user32.SwitchToThisWindow(hwnd,True) #经测试这种最有效

#9.按hwnd关闭窗口
win32gui.SendMessage(hhwd,WM_CLOSE,0,0)

#10.清空Text
ok.delete(0.0,END)
ok.insert(END,'123')

#11.遍历文件夹并改名
def rename():
    path=eny_path.get()
    for a,v,c in os.walk(path):
        t=len(str(int(len(c)/2)))
        for n in c:
          p=os.path.splitext(n)
          x=p[0]
          while len(x)<t:
              x='0'+x
          x=x+p[1]
          os.rename(os.path.join(a,n),os.path.join(a,x))

#12.利用喇叭蜂鸣……
    winsound.Beep(1500,400)

#13.注册主程序析构函数
def xxit():
    pass
atexit.register(xxit)

#14.利用lamba给button等传递参数
Button(text='bad',command=lambda:change(1),hei=1,width=5)

#15.置顶Tkinter窗口
root.wm_attributes('-topmost',1)

#16.通过代理联网
from urllib import quote
import cookielib, urllib2
class uu():
    # 准备cookie
    cj = cookielib.LWPCookieJar()
    cookie_support = urllib2.HTTPCookieProcessor(cj)

# 设置代理服务器
    proxy_info = {
        'host' : 'mengqidlufei.jks5.com' ,
        'port' :52385
        }
    proxy_support = urllib2 . ProxyHandler ( { 'http' : \
        'http://%(host)s:%(port)d' % proxy_info } )

# 构造opener
    def __init__(self):
        opener = urllib2.build_opener(self.cookie_support, self.proxy_support)
        urllib2.install_opener(opener)

# 打开网页
    def open(self,url):
       # print quote(url,':/=?')
        page = urllib2.urlopen(quote(url,':/=?'))
        t= page.read()
        page.close()
        return t

#17.修改系统时间,3倍
import os,time,subprocess
def changetime(t):
   l=time.localtime(t)
   dat="date %u-%02u-%02u"%(l.tm_year,l.tm_mon,l.tm_mday)
   tm="time %02u:%02u:%02u"%(l.tm_hour,l.tm_min,l.tm_sec)
   subprocess.Popen(dat, shell=True)
   subprocess.Popen(tm, shell=True)
   print 'ok'

def change():
    t=time.time()
    while 1:
        t+=60
        changetime(t)
        time.sleep(20)

#18.py2exe win32的dll错误解决办法
from distutils.core import setup
import py2exe,os
includes = ["encodings", "encodings.*"]
mfcfiles = [os.path.join(mfcdir, i) for i in ["mfc90.dll", "mfc90u.dll", "mfcm90.dll", "mfcm90u.dll", "Microsoft.VC90.MFC.manifest"]]
data_files = [("Microsoft.VC90.MFC", mfcfiles),]
#加入mfc文件
options = {"py2exe":
            {   "compressed": 1,
                "optimize": 2,
                "includes": includes,
               # "bundle_files": 1
            }
          }
setup(
     version = "3.0",
     description = xxx,
     name = xxx,
     options = options,
     data_files = data_files,
   # zipfile=None,
     windows=[{"script": "v3.0.pyw" }],
    )

#19.PMW打包问题
#1.首先切换到源目录下:C:\Python27\Lib\site-packages\Pmw\Pmw_1_3_3\bin
#2.然后执行 python bundlepmw.py C:\Python27\Lib\site-packages\Pmw\Pmw_1_3_3\lib (注意是lib)
#3.然后会在bin下生成个Pmw.py (貌似2.0生成的有问题)
#4.复制Pmw.py和lib里的PmwBlt.py和PmwColor.py到要打包的文件夹下
#5.按常规打包即可
时间: 2024-09-14 02:30:36

python 小技巧备注的相关文章

Python补充02 Python小技巧

原文:Python补充02 Python小技巧 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢!   在这里列举一些我使用Python时积累的小技巧.这些技巧是我在使用Python过程中经常使用的.之前很零碎的记在笔记本中,现在整理出来,和大家分享,也作为Python快速教程的一个补充.   import模块 在Python经常使用import声明,以使用其他模块(也就是其它.py文件)中定义的对象. 1) 使用__name__

17个Python小技巧分享_python

1.交换变量 复制代码 代码如下: x = 6 y = 5 x, y = y, x print x >>> 5 print y >>> 6 2.if 语句在行内 复制代码 代码如下: print "Hello" if True else "World" >>> Hello 3.连接 下面的最后一种方式在绑定两个不同类型的对象时显得很酷. 复制代码 代码如下: nfc = ["Packers",

Python小技巧1

原文: http://blog.csdn.net/jclass/article/details/6144647 一. 打印并输出到文件 >>> print("aa","bb"," 11 ","ddddd",sep='-',end='ok/t',file=open("c:/test.txt",'w')) >>> print("-" *40)#打印40个&

收集的几个Python小技巧分享_python

获得当前机器的名字: 复制代码 代码如下: def hostname():         sys = os.name            if sys == 'nt':                  hostname = os.getenv('computername')                  return hostname            elif sys == 'posix':                  host = os.popen('echo $HOST

python小技巧之批量抓取美女图片_python

其中用到urllib2模块和正则表达式模块.下面直接上代码: [/code]#!/usr/bin/env python#-*- coding: utf-8 -*-#通过urllib(2)模块下载网络内容import urllib,urllib2,gevent#引入正则表达式模块,时间模块import re,timefrom gevent import monkey monkey.patch_all() def geturllist(url):    url_list=[]    print ur

Python中Collection的使用小技巧_python

本文所述实例来自独立软件开发者 Alex Marandon,在他的博客中曾介绍了数个关于 Python Collection 的实用小技巧,在此与大家分享.供大家学习借鉴之用.具体如下: 1.判断一个 list 是否为空 传统的方式: if len(mylist): # Do something with my list else: # The list is empty 由于一个空 list 本身等同于 False,所以可以直接: if mylist: # Do something with

Python合并多个装饰器小技巧

  这篇文章主要介绍了Python合并多个装饰器小技巧,本文用改写调用函数的方式实现把多个装饰器合并成一行.一个函数来调用,需要的朋友可以参考下 django程序,需要写很多api,每个函数都需要几个装饰器,例如   代码如下: @csrf_exempt @require_POST def foo(request): pass 既然那么多个方法都需要写2个装饰器,或者多个,有啥办法把多个合并成一行呢? 上面的函数执行过程应该是 代码如下: csrf_exempt(require_POST(foo

查看Python安装路径以及安装包路径小技巧

  这篇文章主要介绍了查看Python安装路径以及安装包路径小技巧,本文使用直接在命令行运行Python代码的方法检测安装路径以及安装包路径,需要的朋友可以参考下 特别是linux系统,装了多个python,有时候找不到python的绝对路径,有时候装了个django,又找不到django安装到哪里了..当然查看的方法有很多种,这里列出几种,供没有经验的人参考下. 复制代码 代码如下: G:codemoniter>python -c "from distutils.sysconfig im

Python中输出ASCII大文字、艺术字、字符字小技巧

  这篇文章主要介绍了Python中输出ASCII大文字.艺术字.字符字小技巧,本文首先给出了ASCII大文字.艺术字.字符字的图片效果,然后给出了Python中的实现方法,需要的朋友可以参考下 代码如下: display text in large ASCII art fonts 显示大ASCII艺术字体 这种东西在源码声明或者软件初始化控制台打印时候很有用. 例如下图: 这是查看HTML源码中截图而来,看到这种字体的网站名称,很cool,下面就介绍一下Python中如何输出这种字符字. 代码