用cx_Oracle在Python中连接Oracle数据库

1. 首先下载cx_Oracle,下载地址:http://sourceforge.net/projects/cx-oracle/
2. 下载Oracle客户端程序instantclient,下载地址(可能有变化,建议百度一下instantclient):http://www.oracle.com/technetwork/cn/database/features/instant-client/index-092699-zhs.html
3. 安装instantclient
4. cx_Oracle的使用方法参见 $Python_Home\cx_Oracle-doc\html\index.h[……]

阅读全文

Python变量的复制与引用

    在python中,数据库分为可变的类型和不可变的数据类型。对于不可变的数据,复制就没有什么特别的,对于可变的数据进行复制就要注意了,因为通常我们的操作就是浅拷贝,源数据改变,所以引用的变量值都会跟着改变。好在百度中找到了这样的文章,我就直接转这里做记录了。

    简单来说,就是如果只是变量的引用(相当于增加一个别名),就直接使用 等号“= ”就可以了。否则就使用深度拷贝吧。
    深度拷贝使用的方法:

>>> from copy import deepcopy[……]

阅读全文

【转】Python 十六进制与浮点数互相转换

在python中虽然很少用到十六进制或者二进制数据,但是当要处理这些数据时,
进制的转换还是必要的,这里把找到的浮点数转换为十六进制,十六进制转换为浮点数
的方法分享出来。有了十六进制数据,二进制也好,十进制,八进制也好,都很方便转换了。

1. 浮点数转为十六进制数据

>>> struct.pack("<f", 238.3).encode('hex')
'cd4c6e43'

2. 十六进制数转为浮点数

>>> import struct
>&g[......]

阅读全文

python socket发送二进制消息

    对于文本协议,就不多说了,Python是很好处理,但是当要传输二进制数据时,如果不熟悉的话,就达不到想要的效果了。如:要传输0b1000000011001100到服务器,转化为十六进制数据0x80cc,传到服务器后,就变成38306363这样的了。实际上是因为在传输时,是以字符串的形式传输的,因此值就变了。
    网络上大多数是建议用struct,我用了一下,如果我们的二进制数据变成十六进制的字符串是'80cc89a7' 这样的形式,如果使用struct感觉不是很方便,直接使用unhexlify把数据格式化一下,然后[……]

阅读全文

【转】Python文件读写操作

    Python对文件读写的操作还是比较简单的,功能也比较全,但是一些生僻的方法我们不常接触到,就不重复写了,转载一篇Dreamer博客上的文章,以备查看。这篇文章写得也还算详细了。

#打开文件和进行写操作
f=open(‘test.txt’,’w’)
f.write(‘hello’)
f.writelines([‘hi’,’haha’])#多行输入
f.close()

#append data
f=open(‘test.txt’,’a’)
f.write(‘hello’)
f.writelines([‘hi’,’haha’])
f.close()

#连续写入后会自动关闭
open(‘test.txt’,’a’).write(‘11111\r\n’)

#把result里的元素依次填到open函数里去
result={‘hello’,’u’}
exec open(‘test.txt’) in result

selected = []                  # temp list to hold matches
fp = open(‘test.txt’)
for line in fp.readlines():    # Py2.2 -> “for line in fp:”
     selected.append(line)
del line                       # Cleanup transient variable

open(‘test.txt’).readlines()

[……]

阅读全文

python 元组的赋值

元组的赋值比较特殊,需要特别注意,见下面的例子:
(红色部分的两种赋值方法,得到的结果是不一样的)
ActivePython 2.6.6.18 (ActiveState Software Inc.) based on
Python 2.6.6 (r266:84292, Jan 7 2011, 13:16:36) [MSC v.1500 32 bit (Intel)] on
win32
Type “help”, “copyright”, “credits” or “license” for more information.
>>> x=[1,2,3]
>&[……]

阅读全文