python脚本语言3

深拷贝和浅拷贝


import copy


a=[1,2,3,['a','b','c']]


c=copy.copy(a)  


#python 中的赋值操作都是对对象的浅拷贝,拷贝引用(“多个标签指向同一内存区”),


#一旦内存空间的内容改变,所有标签对应的内容都会改变,浅拷贝只拷贝父对象(标签)


#但是copy方法会重新开辟新的内存空间,改变内容不影响深拷贝的副本内容




数字字符串是不可变类型,列表字典是可变类型




即使是copy函数,改变变量内容的子元素中属于可变类型的值的时候,子元素变量的内容也会跟着改变,


因为子元素其实也共享着同一块内存空间,虽然父变量已经改变地址。父对象所占的空间不一样。




深拷贝是对对象资源的拷贝 d=copy.deepcopy(a)


对象完全独立开来,完完全全有自己的空间和内容,


这样不仅父元素的地址变化了,子元素的地址也变化了




对程序的效率会有影响。。


python 文件读写

open 函数或者 file类

fo = open('/root/test.txt')

fo.read()

fo.close()


f1=file('/root/test.txt')

f1.read()

f1.read()

f1.close()


mode

r 只读 r+ 读写 w 写入以追加的形式写入,先删除在写入,没有文件则创建 w+ 读写 先删除在写入,没有文件则创建 

fo = open('/root/test.txt','w')


先读在写 会追加到文件末尾,但是如果直接写 则会从头开始覆盖文件

文件流的指针操作

f1.seek(偏移量,选项)  其中选项可以为0(文件开头),1(文件当前),2(文件结尾)

f1.flush()  把文件提交更新。


OS 模块

import os

os.mkdir('test',mode=777)            还有os.listdir('xxxxx') 列出目录      os.makedirs('a/b/c') 创建多级目录  os.rmdir('xxxxx')     和  os.removedir('a/b/c')

查看目录的多级结构 用tree xxxx 命令

os.getcwd()  得到当前目录路径

os.chdir('/')  切换当前目录到根目录

os.isdir('/') 判断路径是文件还是目录


g=os.walk('/root/testdir')   g.next()  返回结果是一系列格式如('/root/testdir',[目录下的目录],[目录下的文件])的列表

每次只要g.next() 就可以返回对应目录下的元组,然后不断的对目录进行深度搜索

 

for path,d,filelist in os.walk('/root/test'):

for filename in filelist:

os.path.join(path,filename)


这样就获得了文件目录下的所有文件的路径


异常处理

try:


except 异常类型(如IOError),msg :

pass

finally:

pass


raise TypeErrot('Error: 'a' must be integer)  让程序自己抛出异常 其中TypeError是系统内定的异常类型,括号里的是异常信息


python 操作mysql

import MySQLdb

conn=MySQLdb.connect(user='root',passwd='',host='127.0.0.1')

cur=conn.cursor()

conn.select_db('week')

cur.execute("insert into userinfo(name,age,gender) value('luis',20,'m   ')")


sqli="insert into userinfo(name,age,gender) value (%s.%s,%s)"

cur.execute(sqli,('csvt',5,'s'))


sqli="insert into userinfo(name,age,gender) values  (%s.%s,%s)"

cur.executemany(sqli,[('vt',5,'s'),('c',1,'s'),('t',23,'m')])


cur.execute("select * from userinfo")

cur.fetchone()  只能一个个取出,结果为元组的集合


cur.scroll(偏移量,位置)  如 (0,'absolute') 让游标指针回到起始位置


cur.fetchmany(n)  表示一次性取出n条


cur.close()

conn.close()


python面向对象

 Class Test:

first =123

second=456

def f(self)

return 'test'

类的方法中至少有一个参数self !!!!


实例化 

if __name__=="__main__":

yuyi = Test()

yuyi.f()

yuyi.first




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值