?!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 分秒必争-Python

分秒必争

个人技术博客,笔记,杂谈之?/h2>

May
13

[原]瑞星2009服务器版盗版升级的脚?/a>

服务器装的是瑞星服务器版?虽然心里认定瑞星是家娱乐公司,但上次最起先装别的杀毒软件的时候导致有些功能失?没办法就装瑞星吧,装的是盗?每次升级病毒库都要打开一个网?然后强出很多广告页面,然后下载,再打开下载的升级文?操累?索性弄个脚本算?脚本不是很长,用单线程下载瑞星官方的文?速度也还理想,就没有深?只要能达到我的目的就行了,瑞星官方的下载地址是读取http://www.luckf

More...

Apr
17

htmlparser 解析html标签中文属性且未加标签 bug解决办法

今天在调式python程序的时候出错,出现如下错误Traceback (most recent call last):  File "test.py", line 20, in <module>    my.feed(a)  File "E:\Python25\lib\HTMLParser.py"

More...

Apr
14

[原]定时关机的脚?/a>

单位有台用来扫描文件的电脑,每天早上开起来之后?点下班了须要人关很麻烦,同事提出能不能在5点自动关机,本想用VBS或者BAT实现,后来想想,既然在学python就用python实现吧,原码如下,每10秒查看下时间,当时间等于17点成立时,调用系统命令关机import os,timerun = 1while run:    if time.strftime('%H',

More...

Mar
19

[原]IP与数字互?/a>

废话不多?直接贴原?环境:Ubuntu 10.04+Python2.6第一?IP转数?!/usr/bin/pythonimport sysIP = sys.argv[1]IP = IP.split('.')if not len(IP)==4:    print "Input ERROR"else:    try

More...

Sep
17

python for s60(pys60)显示中文

从网上看来一个很好的手机显示中文的办法,

Test.py
----------------------------------------------
# -*- coding:utf8 -*-

import appuifw
appuifw.note('中文'.decode('utf8'),'info')

从代码可以看出用UTF?编码就可以了,下面的更灵活,不用再烦杂的decode

Test.py
----------------------------------------------
# -*- coding:utf8 -*-

import appuifw

def uni(s):
      return s.decode('utf8')

appuifw.note(uni('中文出来?),'info')

那里要显示中文,uni('你的字符?)传过去就OK?/p>

在米饭的教程中,根据源码用的就是上面的方法,确实,好的方法就应该这样

--------------?/p>

import appuifw
def cn(x):return x.decode("utf-8")
def add():m.add(cn("这是添加文字功能"))

……

实在好东西,虽然自己曾经在编码上花过很大的功夫,但这个我自己还没试过,所以先抄下来再说,免的要用的时候到处找,嘿?/p>

May
13

[原]用Python来解密VBS

用来解密如图所类似的VBS,解密后会在当前目录下生成decode.txt这个文本文件,这就是解密后的源?/p>

其实这种方法用任何语言编写都可?只是自己在学Python就用python写了一?而且python只须要几句话就行?如果去掉注释说明什么的,源码在图下面

#!/usr/bin/env python
#encoding=utf-8
import sys,WConio,os
def printgoodnews(news):
    oldcolor=WConio.gettextinfo()[4]
    WConio.textcolor(WConio.GREEN)
    print news
    WConio.textcolor(oldcolor)
usage=u"""帮助:此工具须要在命令方式下执行,若此文件命令为a.exe
则在命令下输?a.exe demo.vbs或?a demo.vbs
Http://Www.Djhui.Net    分秒必争
"""

if __name__=="__main__":

    if len(sys.argv)==1:
        printgoodnews(usage)
        sys.exit(-1)
    vbs = sys.argv[1]
    if vbs[-4:].lower()!=".vbs" or not os.path.exists(vbs):
        printgoodnews(u"不好意思,你所输入的文?%s'不是一个有\n效的VBS脚本文件或者文件不存在,请重新输入\nHttp://Www.Djhui.net\n分秒必争" % vbs)
    else:
        printgoodnews(u"""Http://Www.Djhui.net    分秒必争\n""")
        printgoodnews(u"""开始解?s,请稍等....\n""" % vbs)
        printgoodnews(u"""开始读取文?s...\n""" % vbs)
        rf = open (vbs,'r')
        rf1 = rf.read()
        rf.close()
        rf1 = rf1.lower().replace('execute','intercept')
        rf1= rf1 +"""\nSub Intercept (ee)

OutPutFile="decode.txt"
Set objFSO=CreateObject("Scripting.FileSystemObject")
Set objTXT=objFSO.CreateTextFile(OutPutFile,True,False)
objTXT.Write ee
objTXT.Close
Set objWSH=CreateObject("WScript.Shell")
objWSH.Run OutPutFile
WScript.Quit
End Sub"""
        printgoodnews(u"""开始写入临时文?..\n""")
        rf = open('temp.vbs','w')
        rf.write(rf1)
        rf.close
        del rf
        del rf1

        printgoodnews(u"""开始解?..\n""")
        os.system('cscript.exe temp.vbs >nul 2>nul')
        printgoodnews(u"""解密完成...\n""")

 

May
5

[转]Windows下的气泡提示

这个可以在系统拖盘中加入气泡提示,源码见下?转自 http://www.3snews.net/html/50/550-20986.html

# -*- encoding: GB2312 -*-

from win32api import *
# Try and use XP features, so we get alpha-blending etc.
try:
     from winxpgui import *
except ImportError:
     from win32gui import *

import win32con
import sys, os
import struct
import time

class PyNOTIFYICONDATA:
     _struct_format = (
         "I" # DWORD cbSize;
         "I" # HWND hWnd;
         "I" # UINT uID;
         "I" # UINT uFlags;
         "I" # UINT uCallbackMessage;
         "I" # HICON hIcon;
         "128s" #    TCHAR szTip[128];
         "I" # DWORD dwState;
         "I" # DWORD dwStateMask;
         "256s" # TCHAR szInfo[256];
         "I" #     union {
             #    UINT  uTimeout;
             #    UINT  uVersion;
             #} DUMMYUNIONNAME;
         "64s" #    TCHAR szInfoTitle[64];
         "I" #  DWORD dwInfoFlags;
         #       GUID guidItem;
     )
     _struct = struct.Struct(_struct_format)

     hWnd = 0
     uID = 0
     uFlags = 0
     uCallbackMessage = 0
     hIcon = 0
     szTip = ''
     dwState = 0
     dwStateMask = 0
     szInfo = ''
     uTimeoutOrVersion = 0
     szInfoTitle = ''
     dwInfoFlags = 0

     def pack(self):
         return self._struct.pack(
             self._struct.size,
             self.hWnd,
             self.uID,
             self.uFlags,
             self.uCallbackMessage,
             self.hIcon,
             self.szTip,
             self.dwState,
             self.dwStateMask,
             self.szInfo,
             self.uTimeoutOrVersion,
             self.szInfoTitle,
             self.dwInfoFlags)

     def __setattr__(self, name, value):
         # avoid wrong field names
         if not hasattr(self, name):
             raise NameError, name
         self.__dict__[name] = value

class MainWindow:
     def __init__(self, title, msg):
         message_map = {
                 win32con.WM_DESTROY: self.OnDestroy,
         }
         # Register the Window class.
         wc = WNDCLASS()
         hinst = wc.hInstance = GetModuleHandle(None)
         wc.lpszClassName = "PythonTaskbarDemo"
         wc.lpfnWndProc = message_map # could also specify a wndproc.
         classAtom = RegisterClass(wc)
         # Create the Window.
         style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU
         self.hwnd = CreateWindow( classAtom, "Taskbar Demo", style, \
                 0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, \
                 0, 0, hinst, None)
         UpdateWindow(self.hwnd)
         iconPathName = os.path.abspath(os.path.join( sys.prefix, "djhui.ico" ))
         icon_flags = win32con.LR_LOADFROMFILE | win32con.LR_DEFAULTSIZE
         try: hicon = LoadImage(hinst, iconPathName, win32con.IMAGE_ICON, 0, 0, icon_flags)
         except: hicon = LoadIcon(0, win32con.IDI_APPLICATION)
         flags = NIF_ICON | NIF_MESSAGE | NIF_TIP
         nid = (self.hwnd, 0, flags, win32con.WM_USER+20, hicon, "Balloon  tooltip demo")
         Shell_NotifyIcon(NIM_ADD, nid)
         self.show_balloon(title, msg)
         time.sleep(5)
         DestroyWindow(self.hwnd)

     def show_balloon(self, title, msg):
         # For this message I can't use the win32gui structure because
         # it doesn't declare the new, required fields
         nid = PyNOTIFYICONDATA()
         nid.hWnd = self.hwnd
         nid.uFlags = NIF_INFO
         # type of balloon and text are random
         nid.dwInfoFlags = NIIF_INFO
         nid.szInfo = msg
         nid.szInfoTitle = title
         # Call the Windows function, not the wrapped one
         from ctypes import windll
         Shell_NotifyIcon = windll.shell32.Shell_NotifyIconA
         Shell_NotifyIcon(NIM_MODIFY, nid.pack())

     def OnDestroy(self, hwnd, msg, wparam, lparam):
         nid = (self.hwnd, 0)
         Shell_NotifyIcon(NIM_DELETE, nid)
         PostQuitMessage(0) # Terminate the app.

def show_msg(title, msg):
     w=MainWindow(title, msg)
     #PumpMessages()

if __name__=='__main__':
     show_msg("有一条消?quot;, "哈哈?quot;)
 

May
5

Python监视进程

由subprocess创建一个进程,然后进行监视
每一秒钟查看一次,如果正在运行,打印pid和running,如果已停止?继续执行任务并打印Termined
shell和stdout均设置为False
也许这对做病毒的守护进程很好

#!/usr/bin/env python
import subprocess , sys , time
p=subprocess.Popen(['ping','127.0.0.1','-n','10'], shell=False,stdout=False)
while 1:
    time.sleep(1)
    ret=subprocess.Popen.poll(p)
    if ret is None:
        print p.pid,"running"
    else:
        print "Termined!"
        p=subprocess.Popen(['ping','127.0.0.1','-n','10'], shell=False,stdout=False)
 

Mar
16

打印所有汉?/a>

python真是爽啊,两句话就可以把所有的汉字全部打出?代码如下

for ch in xrange(0x4e00, 0x9fa6):
    print unichr(ch)

总共打印汉字20901?这是从python.cn看来?/p>

Mar
11

Python操作Excel文件

还是工作须要,目前还不会用?过段时间会用?因为现在程序开发进度还在起步阶?为了避免以后要用没地方找,先在这里记一?本文转自http://blog.donews.com/limodou/archive/2005/07/09/460033.aspx

以下文中所说的模块下载地址: http://sourceforge.net/projects/pyexcelerator/

一、Excel文件读取

from pyExcelerator import *
sheets = parse_xls('d:/a.xls')

很简单,?xlrd 不同。xlrd 需要先调用book = xlrd.open_workbook(filename)打开文档,然后再调用sh = book.sheet_by_index(i)来得到第几个sheet,然后再使用sh.cell_value(i, j)得到i行j列的单元格的值。操作多了一点。而上面的parse_xls(filename)则直接返回一个列表,每一项就是一个sheet的数据。每项是一个二元组(表名,单元格数?。其中单元格数据为一个字典,键值就是单元格的索?i,j)。如果某个单元格无数据,那么就不存在这个值。看似简单,但从处理上不?xlrd 一样,可以知道每个sheet的最大行数和列数,然后进行循环。而使?pyExcelerator 好象没有最大行数和列数,再加上空数据又不存在,因此在处理上相对麻烦一些。这样在处理上还需要注意。它?xlrd 一样都支持 unicode ,但好象没有 xlrd 一样方便地判断单元格的类型的方法,感觉还是 xlrd 在功能上可能要强一些。当然这只是个人感觉,再加上只是看了看例子,并没有怎么使用?/p>

二、Excel文件写入

这个才是重头。那么安装好 pyExcelerator 之后,读?Readme.txt 之后了解到它的文档正在进行当中,因此想多了解如何使用它需要看它所带的例子,甚至看源程序。下面是我从例子中了解的如何写一?Excel 文档需要了解的?/p>

为了方便,在导入这个模块中使用了import *的方式?/p>

from pyExcelerator import *

首先导入模块,然后是生成工作薄?/p>

w = Workbook()

接着是加入一个工作表(sheet)?/p>

ws = w.add_sheet('Hey, Dude')

然后就可以保存了?/p>

w.save('mini.xls')

上面的代码加在一起就是:

from pyExcelerator import *

w = Workbook()
ws = w.add_sheet('Hey, Dude')
w.save('mini.xls')

这就是最小的一个例子了,在例子中叫mini.py。你可以在例子目录下运行mini.py看一看是不是生成了一个空的Excel文件?/p>

如果想加入中文很简单,改为?/p>

#coding=cp936
from pyExcelerator import *

w = Workbook()
ws = w.add_sheet(u'这是中文')
w.save('mini.xls')

这样上面的执行结果是生成一个空Excel文件,但它的第一个sheet的名字为“这是中文”。就这样,只要保证你写入时使用unicode就行了?/p>

空文件可以生成,那么如何插入单元格呢?/p>

ws.write(i, j, value)

其中value为值,可以是unicode?/p>

接着,我们可能想改变单元格的样式,如字体?/p>

font0 = Font()
font0.name = 'Times New Roman'
font0.struck_out = True
font0.bold = True

style0 = XFStyle()
style0.font = font0

这样我们创建了一个字体,然后又生成了一个样式。注意,真正起作用的是样?/strong>,字体不过是样式中的一种效果?/p>

这样在写入单元格时带着这个样式就行了,还是使用上面的write()方法?/p>

ws.write(1, 1, 'Test', style0)

这是在名为ws的sheet中的?1,1)单元格写入了值为"Test"的内容,并且它的样式为style0?/p>

然后我们还可以设置单元格的边框:

    borders = Borders()
    borders.left = 5
    style.borders = borders

上面创建了一个边框效果,设置了左边框,至于5是什么意思,我也不清楚,随便写的。然后放到样式中。上面的例子可以参考format.py程序?/p>

其它还有许多的效果,简单地列一下:

 示例?/td> 说明 
 col_width.py 改变单元格宽?nbsp;
 row_style.py 设置行的高度 
 merged*.py

单元格合?nbsp;

 image.py

插入图片 

 outline*.py

大纲效果(以前真没用过) 

 wsprops.py

sheet的属性值打?nbsp;

 xls2*.py

Excel转为其它的文件格?nbsp;

Mar
10

合并2个字?/a>

因工作中须要编写一段程?而从我个人的构思就是合?个字典比较麻?经过在论坛一翻问?目前已有一答案,不知道处理数据量很大的情况会不会很慢先记一笔吧

字典
            #姓名    #电话
list1 = {"aaa":"12345",
            "bbb":"76859",
            "ccc":"346843",
            "eee":"0854335"}
            #姓名    #手机
list3 = {"aaa":"1234577",
            "bbb":"7685977",
            "ddd":"3468437777",
            "eee":"085433544"}
for k,v in list1.items():
    if list3.has_key(k):
        list3[k]=list3[k]+','+v   
    else:
        list3[k]=v

print  list3

运行结果如下,懂PYTHON的人都知?这个结果已和我要的结果非常相近了

{'eee': '085433544,0854335', 'aaa': '1234577,12345', 'bbb': '7685977,76859', 'ddd': '3468437777'}

#姓名     电话       手机
aaa         12345       1234577
bbb         76859       7685977
ccc          346843
ddd                          3468437777
eee         0854335   085433544

 

Feb
26

Python连接MSSqlserver

需要pymssql模块

模块下载地址?a href="http://pymssql.sourceforge.net/">http://pymssql.sourceforge.net/

例子?/p>

import pymssql
con=pymssql.connect(host='127.0.0.1',user='sa',password='',database='dbname')
cur=con.cursor()

cur.execute('select count(*) from bokewu_table')
for i in  cur.fetchall():
    for j in i
        print j #为什么这里用2次for ,是因为能让中文完整的显示,我就是因为这里少一次循环而整了半天不能显示中?br />print cur.fetchall()
cur.close()
con.close()

 

分页:«123456»

日历

<< 2010-5 >>

Sun

Mon

Tue

Wed

Thu

Fri

Sat

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

Channels

Statistics

  • 文章总数:308
  • 评论总数:300
  • 引用总数:0
  • 浏览总数:409461
  • 留言总数:83
  • 当前主题:Aleea主题
  • 当前样式:Aleea

图标汇集

Powered By Z-Blog 1.8 Walle Build 100427   UNISON UPDATE Copyright www.djhui.net. Some Rights Reserved. 浙ICP?9017588?/h3>