python 命令行参数
本篇将介绍python中sys, getopt模块处理命令行参数
如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢?
需要模块:sys
参数个数:len(sys.argv)
1 2 3 | 脚本名: sys.argv[0] 参数1: sys.argv[1] 参数2: sys.argv[2] |
test.py
import sys
print "脚本名:", sys.argv[0]
for i in range(1, len(sys.argv)):
print "参数", i, sys.argv[i]
>>>python test.py hello world
脚本名:test.py
参数 1 hello
参数 2 world
php接口远程调用url方法
示例代码1: 用file_get_contents 以get方式获取内容
<?php
$url='http://www.baidu.com/';
$html = file_get_contents($url);
//print_r($http_response_header);
ec($html);
printhr();
printarr($http_response_header);
printhr();
?>
示例代码2: 用fopen打开url, 以get方式获取内容
<?
$fp = fopen($url, 'r');
printarr(stream_get_meta_da
printhr();
while(!feof($fp)) {
$result .= fgets($fp, 1024);
}
echo "url body: $result";
printhr();
fclose($fp);
?>
preg_match学习,官方解释各种迷惑的可以参考下
转:http://118ss.blog.163.com/blog/static/6560818200852592847982/
大家一看到preg_match肯定会头痛的。。。其实没什么,下面我就尽力给还不明白的兄弟们争取讲明白了:
在这里我就不解释preg_match的说明了,朋友们可以通过php手册查看..先来个简单点的:
preg_match("/^(http://)?([^/]+)/i",
"http://www.php.net/index.html",
$matches);
$host = $matches[2];
//
从主机名中取得后面两段
preg_match("/[^./]+.[^./]+$/", $host, $matches);
echo
"domain name is: {$matches[0]}n";
这是手册里的例子。多数人对preg_match犯晕都出在正则上,以后我也会介绍正则。先看这个例子,
preg_match($pattern,$string,$matcher)其中$pattern对应的就是”/^(http://)?([^/]+)/i
$str
是http://www.php.net/index.html.$match是匹配到的结果。按照手册上的意思:
如果提供了
matches,则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本,$matches[1]
将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。
这是什么意思呢?第一句就不用解释了,$matches[0]
将包含与整个模式匹配的文本。
咱们用pring_r打印出来第一个$matches:
Array ( [0] => http://www.php.net [1] => http:// [2] => www.php.net )
这回明白了吧。。$matches[0]
将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本。在正则中,()代表模式:匹配 pattern
并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用
$0…$9 属性。就是说数组中下标为1的值就是正则中/^(http://)?([^/]+)/i第一个()里的值!数组下标2的值以此类推
linux下vi命令大全
文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充!
进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename :打开多个文件,依次进行编辑
移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行
删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本
Java无数据源连接Access解决方案,获取mdb相对路径
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | package mytest; import java.sql.*; import java.io.*; import java.net.*; public class AccessDBConn { private Connection conn = null; private File file = null; private URL url = null; //之所以要用URL是因为可以通过file.toURI()得到含有空格的地址。 public Connection AccessDBConn() { String driver="sun.jdbc.odbc.JdbcOdbcDriver"; //获得数据库的真实路径 String dburl = String.valueOf(Thread.currentThread().getContextClassLoader().getResource("")); dburl = dburl + "../../family.mdb";//得到文件的URL: 'file:/C:\...' try{ url=new URL(dburl); file=new File(url.toURI()); //用toURI()就解决空格问题。 }catch(Exception e){} dburl = file.toString(); //绝对路径 String accessUrl="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+dburl; try{ Class.forName(driver); conn = DriverManager.getConnection(accessUrl); }catch(Exception e){ e.printStackTrace();} return conn; } public static void main (String[] args) { AccessDBConn dbc= new AccessDBConn(); dbc.AccessDBConn(); } } |
MySQL引擎
MySQL常用的有以下几种引擎:ISAM、MyISAM、HEAP、InnoDB和Berkley(BDB)。
ISAM
ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次数要远大于更新的次数。因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM的两个主要不足之处在于,它不支持事务处理,也不能够容错:如果你的硬盘崩溃了,那么数据文件就无法恢复了。如果你正在把ISAM用在关键任务应用程序里,那就必须经常备份你所有的实时数据,通过其复制特性,MySQL能够支持这样的备份应用程序。
内网用户轻松穿越外网 ipv6+GAE
引言:此文为校园网用户量身打造。按本文介绍的方法,成功后的效果是:你只需登录内网,然后通过IPv6网络和GAE个人代理服务,即可访问外网。本方案可以为你节省全部网费开支,当然运营商不大愿意看到的这样的结果,但我知道这是广大对于电信行业的垄断式经营怨声载道却又无可奈何的学子们梦寐以求的上网方案。我是站在群众一边的。
话又说回来,各位电信巨头在每个季度赚得盆满钵满之余,稍稍为祖国的教育事业让出一份利润,也不为过吧?要知道,大多数学生都是没有收入的,而目前提供给我们的各种网络业务,质量参差不齐,服务令人失望,而且仅此一家别无分号。
所以,每一个神奇的穿越技巧,都对应着一个糟糕的既有业务。
如果我们可以有选择,如果现在的各种服务都合情合理正规正常,没人会吃饱了撑的去折腾这些。
闲话到此为止,下面开始正式的技术讨论:)
[HTMLParser]配合[正则表达式]使用 过滤爬取网页
爬虫已经能够把所有页面爬下来了,但是保存的是包括完整html标签的html文件,所以使用HtmlParser来过滤不需要的html标签。然后想到了直接使用了正则表达式匹配来去除98上的[url]这种BB功能标签,别看就一个正则表达式,其实折腾了好久。正则表达式匹配[中括号,使用\\[,同理匹配?使用\\?,别被网上一些言论误导。。不然都false。。还是自己查api比较靠谱。
HTMLParser的核心模块是org.htmlparser.Parser类,这个类实际完成了对于HTML页面的分析工作。这个类有下面几个构造函数:
public Parser ();
public Parser (Lexer lexer, ParserFeedback fb);
public Parser (URLConnection connection, ParserFeedback fb) throws ParserException;
public Parser (String resource, ParserFeedback feedback) throws ParserException;
public Parser (String resource) throws ParserException;
public Parser (Lexer lexer);
public Parser (URLConnection connection) throws ParserException;
和一个静态类 public static Parser createParser (String html, String charset);
MyISAM 和 InnoDB 区别
MyISAM 和 InnoDB 讲解
InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。
以下是一些细节和具体实现的差别:
◆1.InnoDB不支持FULLTEXT类型的索引。
◆2.InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的。
Javascript, JQuery, Validate使用
js实现页面跳转的几种方式
第一种:
1 2 3 | <script type="text/javascript" language="javascript">// < ![CDATA[ window.location.href="login.jsp?backurl="+window.location.href; // ]]></script> |
第二种:
1 2 3 | <script type="text/javascript" language="javascript">// < ![CDATA[ alert("返回"); window.history.back(-1); // ]]></script> |
第三种:
1 2 3 | <script type="text/javascript" language="javascript">// < ![CDATA[ window.navigate("top.jsp"); // ]]></script> |