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
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能够支持这样的备份应用程序。
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条件时,两种表的操作是一样的。
struts2中s:iterator 标签的使用详解 及 OGNL用法
s:iterator 标签有3个属性:
value:被迭代的集合
id :指定集合里面的元素的id
status 迭代元素的索引
1:jsp页面定义元素写法 数组或list
<s:iterator value="{'1','2','3','4','5'}" >
<s:property value='number'/>A
</s:iterator>
打印结果为: 1A2A3A4A5A
2:索引的用法
如果指定了status,每次的迭代数据都有IteratorStatus的实例,它有以下几个方法
int getCount()返回当前迭代了几个元素
int getIndex()返回当前元素索引
boolean isEven()当然的索引是否偶数
boolean isFirst()当前是否第一个元素
boolean isLast()
boolean isOdd()当前元素索引是否奇数
<s:iterator value="{'a','b','c'}" status='st'>
<s:if test="#st.Even">
现在的索引是奇数为:<s:property value='#st.index'/>
</s:if>
当前元素值:<s:property value='char'/>
</s:iterator>
3:遍历map
value可以直接定义为:
value="#{"1":"a","2":"b"}"
每个元素以都好隔开。元素之间的key和value 冒号隔开
value也可以是数据栈里面的java.util.Map对象
遍历写法如下:
<s:iterator value="map" status="st">
key : <s:property value='key'/>
value:<s:property vlaue='value'/>
</s:iterator>
当然key 和value 都可以使java 的 Object
3:遍历数据栈.简单的List类,
List<Attr>
class Attr{String attrName;String getAttrName(){return "123";}}
<s:iterator value="label" >
<s:property value="#id.attrName" />
</s:iterator>
当然value 还可以写成 value="%{label}" label可以有.操作
label的属性List 可以写成value="%{label.list}" 相当于:getLabel().getList();
4:遍历2个list;
List<AttrName> attrN {color,size,style}
List<AttrValue> attrV {red,20,gay}
这2个list的元素是一一对应的,一个attrN对应一个attrV
<s:iterator value="%{attrN }" status="status">
index is : <s:property value='status.index'/>
attrName is : <s:property value='id'/> or <s:property value='%{id}'/>
attrName is : <s:property value='%{attrV[#status.index]}'/>
</s:iterator>
<s:bean >
<s:param value="5" />
<s:param value="10" />
<s:iterator>
counter:<s:property/>
</s:iterator>
</s:bean>
OpenGL Function Calls
- void glBegin (GLenum mode)
- void glEdgeFlag (GLboolean flag)
- void glEdgeFlagv (const GLboolean *flag)
- void glEnd (void)
- extern void glPolygonOffset (GLfloat factor, GLfloat units)
- void glRect (TYPE x1, TYPE y1, TYPE x2, TYPE y2)
- void glRectv (const TYPE *v1, const TYPE *v2)
- void glVertex2 (TYPE x, TYPE y)
- void glVertex3 (TYPE x, TYPE y, TYPE z)
- void glVertex4 (TYPE x, TYPE y, TYPE z, TYPE w)
- extern void glArrayElement (GLint i)
- extern void glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
- extern void glDisableClientState (GLenum array)
- extern void glDrawArrays (GLenum mode, GLint first, GLsizei count)
- extern void glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices)
- extern void glEdgeFlagPointer (GLsizei stride, const GLvoid *pointer)
- extern void glEnableClientState (GLenum array)
- extern void glIndexPointer (GLenum type, GLsizei stride, const GLvoid *pointer)
- extern void glInterleavedArrays (GLenum format, GLsizei stride, const GLvoid *pointer)
- extern void glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer)
- extern void glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
- extern void glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
[Java]统计文件字母,统计单词
1、编写一个程序,统计给定文件中每个字母出现的频率。
2、编写一个程序,统计给定文件中包含的单词数目,并按单词表的顺序显示统计结果。
Java编程 Swing模板
1、创建框架:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import java.awt.*; import javax.swing.*; public class SimpleFrameTest { public static void main(String[] args) { // 事件调度线程 EventQueue.invokeLater(new Runnable() { public void run() { // 创建一个SimpleFrame窗体 SimpleFrame frame = new SimpleFrame(); // 默认关闭窗口时退出 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗体可见 frame.setVisible(true); } }); } } |
wait/waitpid函数说明
#include<sys/types>
pid_t wait(int *status)
pid_t waitpid(pid_t pid,int *status,int options)
wait函数的功能是等待子进程执行完的时候执行父进程
发出wait调用的进程会进入睡眠知道它的一个子进程退出或受到一个不能被忽略的信号时候唤醒,如果该调用进程没有子进程或它的子进程已经结束,该调用立即返回,调用返回是参数status中包含子进程退出时的状态信息