python学习笔记(五岁以下儿童)

深拷贝-浅拷贝

浅拷贝就是对引用的拷贝(仅仅拷贝父对象)

深拷贝就是对对象的资源拷贝

普通的复制,仅仅是添加了一个指向同一个地址空间的”标签“,东西都是一样的。改变或者添加,复制出来的变量也会改变

样例:

>>> a=[1,2,3]

>>> b=a

>>> a

[1, 2, 3]

>>> b

[1, 2, 3]

>>> a[1]=0

>>> a

[1, 0, 3]

>>> b

[1, 0, 3]

>>> a.append(4)

>>> a

[1, 0, 3, 4]

>>> b

[1, 0, 3, 4]

浅拷贝

要增加copy模块 import copy

浅拷贝数据不会独立的在复制一份,仅仅是对引用的拷贝,每一个元素的id都是一样的

样例:

>>> import copy

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

>>> b=copy.copy(a)

>>> b

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

>>> id(a)

48145736L

>>> id(b)

48123592L

>>> id(a[0])

30730152L

>>> id(b[0])

30730152L

>>> a.append(0)

>>> a

[1, 2, ['a', 'b', 'c'], 0]

>>> b

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

>>> a[2].append('d')

>>> a

[1, 2, ['a', 'b', 'c', 'd'], 0]

>>> b

[1, 2, ['a', 'b', 'c', 'd']]

深拷贝

仅仅用把copy.copy()改成copy.deepcopy()
深拷贝会把全部的数据都单独的在拷贝一份

文件的读写


能够用open函数。或者file类

open(name[, mode[, buffering]])
file(name[, mode[, buffering]])
fo = open("/code/1.txt")  #使用open函数
print fo.read()
fo.close() f1 = file("/code/1.txt") #使用file类
print f1.read()
f1.close()

mode

r    仅仅读

r+  读写。假设已经存在。则从文件指针位置写入
w   写入,假设已经存在,先删除原文件,在又一次写入
w+ 读写,假设已经存在,先删除原文件。在又一次写入
a    写入。在文件末尾追加新内容
a+  读写,在文件末尾追加新内容
b    打开二进制文件。能够于r、w、a、+结合使用
U   支持全部的换行符号。“\r” "\n"  "\r\n"

样例:写入
#/usr/bin//usr/bin/python2.7
# -*- coding: utf-8 -*-
fnew = open('/code/new.txt','w')
fnew.write('Hello Python!!') #这时2还没有真正的写到文件里去,仅仅是在缓冲中 。close或者flush后才写到文件里去
fnew.close()

文件对象方法


String = FileObject.read([size])  读取,从文件指针開始读取,能够size指定读取多少
String = FileObject.readline([size])  每次读取一行。并将文件文件指针到下一行
List = FileOject.readlines([size])  返回一个列表,存放没一行的字符
FileObject.next()  返回当前行,并将文件文件指针到下一行 与readline不同的地方是,readline把全部行读完后返回空字符串,next会发出警告

FileObject.write(String) 写入
FileObject.writelines(list)  多行写入。效率比write高,速度快

FileObject.seek(偏移量,选项)
选项 = 0 将文件指针移到 文件头部+偏移量处
选项 = 1 将文件指针移到 当前位置+偏移量处
选项 = 2 将文件指针移到 末尾 - 偏移量处

FileObject.flush()  提交更新。将缓冲写到文件里去


样例:查找
import re
fp = file('1.txt','r')
count = 0
for s in fp.readlines():
li = re.findall('hello',s)
if len(li)>0:
count = count + len(li)
print "Search "+str(count) + " hello" fp.close()

样例:替换

# -*- coding: utf-8 -*-
import re
fp = file('1.txt','r+')
s=fp.read()
fp.seek(0,0)
fp.truncate() #文件清空
fp.write(s.replace('hello','hi'))
fp.close()

OS模块


引入os模块 import os

文件夹操作

通过os模块来实现文件夹的创建,改动,遍历等
创建文件夹(不能创建多级文件夹)  os.mkdir(path [, mode=0777])
创建文件夹(能够创建多级文件夹)  os.makedirs(path [, mode=0777])
删除文件夹(不能删除多级文件夹)  os.rmdir(path)
删除文件夹(能够删除多级文件夹)  os.removedirs(path)
列出文件夹 os.listdir(path) 
获取当前文件夹  os.getcwd()
切换文件夹  os.chdir(path)



版权声明:本文博客原创文章,博客,未经同意,不得转载。

python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹的更多相关文章

  1. python学习笔记(五)---函数与类

    函数 def为定义函数的一个标志 demo1: def greet_user(username): print("Hello, " + username.title() + &qu ...

  2. python学习笔记五 模块上(基础篇)

    模块学习 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要 ...

  3. Python学习笔记五

    一. 递归 递归函数: def a (): print ("from b") b() def b(): print("from a ") a() a() 递推和 ...

  4. Python学习笔记五:错误与异常

    一:常见异常与错误 BaseException 所有异常的基类SystemExit 解释器请求退出KeyboardInterrupt 用户中断执行(通常是输入^C)Exception 常规错误的基类S ...

  5. python学习笔记(五):装饰器、生成器、内置函数、json

    一.装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能,比如说,我以前写了很多代码,系统已经上线了,但是性能比较不好,现在想把程序里 ...

  6. Python学习笔记五(读取提取写入文件)

    #Python打开读取一个文件内容,然后写入一个新的文件中,并对某些字段进行提取,写入新的字段的脚本,与大家共同学习. import os import re def get_filelist(dir ...

  7. Python学习笔记(五)函数和代码复用

    函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Python提供了许多内建函数,比如print().同样,你也可以自己创建函数, ...

  8. python学习笔记五 模块下(基础篇)

    shevle 模块 扩展pickle模块... 1.潜在的陷进 >>> import shelve>>> s = shelve.open("nb" ...

  9. python学习笔记五--文件

    任何情况下文本文件在Python里均是字符串模式. 一.创建一个文件,并写入: 函数open(文件名,w) 二.打开一个文件,并读取: 函数open(文件名,r),“r”是默认值,可以不用写 三.使用 ...

随机推荐

  1. MD5和Base64

    一. 简述 MD5: 全称为message digest algorithm 5(信息摘要算法), 能够进行加密, 可是不能解密, 属于单向加密, 通经常使用于文件校验 Base64: 把随意序列的8 ...

  2. 【Flume】flume于transactionCapacity和batchSize进行详细的分析和质疑的概念

    我不知道你用flume读者熟悉无论这两个概念 一开始我是有点困惑,? 没感觉到transactionCapacity的作用啊? batchSize又是干啥的啊? -- -- 带着这些问题,我们深入源代 ...

  3. .net与Java的WebService互调

    本文记录一下.net与Java是如何进行Web Service的互相调用的. 1.准备工作 MyEclipse 10 JDK 1.6.0_13 Visual Studio 2012 .net fram ...

  4. 云梯vpn

    刚和大饼合买了一个云梯的vpn 表示可以把俺的优惠连接放出来了 貌似必须是新注册用户才能够享用优惠 http://protizi.com/?r=5e3fecd7eae558ec 把云梯推荐给朋友们 让 ...

  5. Android使用代码消除App数据并重新启动设备

    /** * 使用代码消除App数据 * 我们不寻常的清除App数据,中找到相应的App * 然后选择其清除数据.以下给出代码实现. * * 注意事项: * 1 设备须要root * 2 该演示样例中删 ...

  6. SQL Server 数据库没有有效全部者的三种解决的方法

    问题:     开发的过程中,操作系统出了问题.决定重装系统.可是没有将SQL Server中的数据库文件分离出来,直接将系统格了.在新系统数据库中附加了数据库文件,一切还算正常.但当打开数据库关系图 ...

  7. 浙江大学PAT考试1069~1072(2013-11-2)

    11 题目地址:http://pat.zju.edu.cn/contests/pat-a-practise 1069: 由下降序和上升序两个四位数不断相减,然后得到新数据,始终会到达一个数字终止. 递 ...

  8. css居中方式总结

    方法一: line-height <div class="vertical" style="width:200px;height:200px;border:2px ...

  9. 纯CSS3实现的图片滑块程序 效果非常酷

    原文:纯CSS3实现的图片滑块程序 效果非常酷 之前我们经常会看到很多利用jQuery实现的焦点图插件,种类太多了,今天我想给大家分享一款利用纯CSS3实现的图片滑块应用,完全是利用CSS3的相关特性 ...

  10. MFC属性页对话框

    属性页对话框 分类 分页和引导 类 CPropertyPage-父亲CDialog类别,所谓的属性页或网页对话框. CPropertySheet-父类是CWnd,称为属性表单. 一个完整的属性页对话框 ...