随笔分类 - Script
1
摘要:文本处理时,经常要删除重复行,下面是三种方法第一,用sort+uniq,注意,单纯uniq是不行的。sort -n test.txt | uniq第二,用sort+awk命令,注意,单纯awk同样不行,原因同上。sort -n $file | awk '{if($0!=line)print; line=$0}' 第三,用sort+sed命令,同样需要sort命令先排序。sort -n $file | sed '$!N; /^\(.*\)\n\1$/!P; D'Shell脚本# !/bin/sh file='test.txt' sort -n $f
阅读全文
摘要:前几天,帮朋友做了几款地图API接口调研,推荐他使用百度BMap和谷歌GMap API,后来又直接交由我来替他做一来上周帮研究生部老师做的学位证书精准打印系统基本完工,晚上有点时间研究下js二来去年刚到百度实习头1个月,做的正是js,因此对BMap部分源码、API接口风格以及文档也都有些了解花了一天两夜,基本功能需求都已经实现(自定义标注、精确和模糊查询、个性化添加、右键菜单等),先贴出效果图:上图布局,最上面是测试通过的浏览器及其版本,左侧是动态加载的数据源和查询功能,右侧则是调用BMap API实现自己的应用知识拓展:关于js和css的浏览器兼容性问题,请参见我在百度空间的博客 Javas
阅读全文
摘要:前天周六,有个好友过来玩,他说想在他的网站中加入地图导航模块,但不知道选择哪个第三方Map API在网上查了下Baidu、Google、QQ和MapBar等4种Map API(都是采用JS开放API),也查看了它们的SDK开发文档,谈谈自己的体会Map API文档BMap API(Baidu)与google.maps API(Google)文档相对最完备、详尽、简洁,并且给出了很多学习示例,非常适合初学者入门学习、应用开发QMap API(QQ)与MapBar API(MapBar)文档虽然也比较完备,但示例与代码分开了,不能很好所见即所得的体现代码与效果相关性Map 功能推荐BMap API
阅读全文
摘要:前天去面试,有个gg问了一些js知识,其中有一道call与apply用法的题目,尽管在365天前用过call方法,但当时还是没能答上来,今天深入总结一下call和apply,它们的作用都是将函数绑定到另外一个对象上去运行两者的格式和参数定义:call( thisArg [,arg1,arg2,… ] ); // 参数列表,arg1,arg2,...apply(thisArg [,argArray] ); // 参数数组,argArray上面两个函数内部的this指针,都会被赋值为thisArg,这可实现将函数作为另外一个对象的方法运行的目的一、call 的简单用法首先,我...
阅读全文
摘要:使用print输出各型的字符串整数浮点数出度及精度控制strHello = 'Hello Python' print strHello#输出结果:Hello Python#直接出字符串1.格式化输出整数pythonprint也支持参数格式化,与C言的printf似,strHello = "the length of (%s) is %d" %('Hello World',len('Hello World'))print strHello#输出果:the length of (Hello World) is 112.格式化输出1
阅读全文
摘要:本文讨论在没有方便的IDE工具可用的情况下,使用pdb调试python程序源码例子例如,有模拟税收计算的程序:#!/usr/bin/pythondef debug_demo(val):if val <= 1600 :print "level 1"print 0elif val <= 3500 :print "level 2"print (val - 1600) * 0.05elif val <= 6500 :print "level 3"print (val - 3500) * 0.10 + (3500-1600)
阅读全文
摘要:Shell脚本是含有若干UNIX命令或可执行程序的文本文件。1 运行Shell脚本Shell脚本有两种运行方式,第一种方式是利用sh命令,把shell脚本文件名作为参数。这种执行方式要求shell脚本文件具有“可读”的访问权限。第二种执行方式是利用chmod命令设置shell脚本文件,使shell脚本具有“可执行”的访问权限。然后直接在命令提示符下输入shell脚本文件名。2 退出或出口状态一个UNIX进程或命令终止运行时,将会自动地向父进程返回一个出口状态。如果进程成功执行完毕,将会返回一个数值为0的出口状态。如果进程在执行过程中出现异常而未正常结束时,将会返回一个非零值得出错代码。在she
阅读全文
摘要:ASCII 是一种字符集,包括大小写的英文字母、数字、控制字符等,它用一个字节表示,范围是 0-127Unicode分为UTF-8和UTF-16。UTF-8变长度的,最多 6 个字节,小于 127 的字符用一个字节表示,与 ASCII 字符集的结果一样,ASCII 编码下的英语文本不需要修改就可以当作 UTF-8 编码进行处理。Python 从 2.2 开始支持 Unicode ,函数 decode( char_set )可以实现 其它编码到 Unicode 的转换,函数 encode( char_set )实现 Unicode 到其它编码方式的转换。比如 ("你好").d
阅读全文
摘要:Source:#!/bin/env python# coding=gb2312# -*- coding: gb2312 -*-from __future__ import division#### if-else ####print '#### if-else ####'a = input("a: ") # 12 or 10+2b = input("b: ")if(a>b): print "max: ", aelse: print "max: ", b#### if-elif-else ###
阅读全文
摘要:本文结合大量实例阐述如何编写一个shell脚本。 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具。Shell不仅仅是命令的收集,而且是一门非常棒的编程语言。您可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。 下面,让我们一起来看看shell是如何工作的: 建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在...
阅读全文
摘要:import structpack、unpack、pack_into、unpack_from# ref: http://blog.csdn.net/JGood/archive/2009/06/22/4290158.aspximport struct#pack - unpackprintprint '===== pack - unpack ====='str = struct.pack("ii", 20, 400)print 'str:', strprint 'len(str):', len(str) # len(str): 8
阅读全文
摘要:简介:软件的测试是一件非常乏味的事情,在测试别人编写的软件时尤其如此,程序员通常都只对编写代码感兴趣,而不喜欢文档编写和软件测试这类"没有创新"的工作。既然如此,为什么不让程序员在编写软件时自己加入一些用于测试的代码,使测试过程自动化呢?在软件工程中,这一技术称为自动单元测试,本文介绍在用Python开发软件时如何实现这一目标。一、软件测试大型软件系统的开发是一个很复杂的过程,其中因为人的因素而所产生的错误非常多,因此软件在开发过程必须要有相应的质量保证活动,而软件测试则是保证质量的关键措施。正像软件熵(software entropy)所描述的那样:一个程序从设计很好的状
阅读全文
摘要:Pythonunittest模块的相关用法待测源码类:widget.py#!/usr/bin/env pythonclass Widget: def __init__(self, size = (40, 40)): self._size = size def getSize(self): return self._size def resize(self, width, height): if width == 0 or height < 0: raise ValueError, "illegal size" ...
阅读全文
摘要:代码: #! /usr/bin/python# Filename: inherit.py# Author: yanggangclass SchoolMember: def __init__(self,name,age): self.name = name self.age = age print 'init SchoolMember: ', self.name def tell(self): print 'name:%s; age:%s' % (self.name, self.age)class Teacher(SchoolM...
阅读全文
摘要:Server:# serverimport socketaddress = ('127.0.0.1', 31500)s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # s = socket.socket()s.bind(address)s.listen(5)ss, addr = s.accept()print 'got connected from',addrss.send('byebye')ra = ss.recv(512)print rass.close()s.close()Clie
阅读全文
摘要:Server:import socketaddress = ('127.0.0.1', 31500)s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)s.bind(address)while True: data, addr = s.recvfrom(2048) if not data: print "client has exist" break print "received:", data, "from", addrs.close()Client:import
阅读全文
摘要:重剑点评: 真简单明了!复习网络编程,顺便学习python。一、套接字套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等)套件对上的网络应用程序提供者提供当前可移植标准的对象。它们允许程序接受并进行连接,如发送和接受数据。为了建立通信通道,网络通信的每个端点拥有一个套接字对象极为重要。套接字为BSD UNIX系统核心的一部分,而且他们也被许多其他类似UNIX的操作系统包括Linux所采纳。许多非BSD UNIX系统(如ms-dos,windows,os/2,mac os及大部分主机环境)都以库形式提供对套接字的支持。三种最流行的套接字类型是:stream,datagram
阅读全文
摘要:JavaScript Packer: http://packer.skiyo.cn/JavaScript UnPacker: http://packer.skiyo.cn/unpacker.html
阅读全文
摘要:Get the content of an Iframe in Javascript – crossbrowser solution for both IE and Firefoxhttp://roneiv.wordpress.com/2008/01/18/get-the-content-of-an-iframe-in-javascript-crossbrowser-solution-for-both-ie-and-firefox/Ok, let’s imagine the use case: I have an iframe somewhere on my page, and when I
阅读全文
摘要:一:代码解释代码:<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"WIDTH="550" HEIGHT="400" ><PARAM VALUE="myFlashMovie.swf"><PARAM VALUE
阅读全文
1