python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹
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学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹的更多相关文章
- python学习笔记(五)---函数与类
函数 def为定义函数的一个标志 demo1: def greet_user(username): print("Hello, " + username.title() + &qu ...
- python学习笔记五 模块上(基础篇)
模块学习 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要 ...
- Python学习笔记五
一. 递归 递归函数: def a (): print ("from b") b() def b(): print("from a ") a() a() 递推和 ...
- Python学习笔记五:错误与异常
一:常见异常与错误 BaseException 所有异常的基类SystemExit 解释器请求退出KeyboardInterrupt 用户中断执行(通常是输入^C)Exception 常规错误的基类S ...
- python学习笔记(五):装饰器、生成器、内置函数、json
一.装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能,比如说,我以前写了很多代码,系统已经上线了,但是性能比较不好,现在想把程序里 ...
- Python学习笔记五(读取提取写入文件)
#Python打开读取一个文件内容,然后写入一个新的文件中,并对某些字段进行提取,写入新的字段的脚本,与大家共同学习. import os import re def get_filelist(dir ...
- Python学习笔记(五)函数和代码复用
函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Python提供了许多内建函数,比如print().同样,你也可以自己创建函数, ...
- python学习笔记五 模块下(基础篇)
shevle 模块 扩展pickle模块... 1.潜在的陷进 >>> import shelve>>> s = shelve.open("nb" ...
- python学习笔记五--文件
任何情况下文本文件在Python里均是字符串模式. 一.创建一个文件,并写入: 函数open(文件名,w) 二.打开一个文件,并读取: 函数open(文件名,r),“r”是默认值,可以不用写 三.使用 ...
随机推荐
- 设计模式 State模式 机器的情况下用自己的主动性
转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/26350617 状态模型给我眼前一亮的感觉啊,值得学习~ 看看定义:改变一个对象的 ...
- POJ 3280 Cheapest Palindrome (DP)
Description Keeping track of all the cows can be a tricky task so Farmer John has installed a sys ...
- 基于Gsoap 的ONVIF C++ 库
https://github.com/xsmart/onvifcpplib 该库支持ProfileS 和ProfileG,目前正在开发哪些,现拥有支持Event 下面是一个client样本 int _ ...
- Android应用程序的组成部分和Manifest文件(转)
Android应用程序由松散耦合的组件组成,并使用应用程序Manifest绑定到一起:应用程序Manifest描述了每一组件和它们之间的交互方式,还用于指定应用程序元数据.其硬件和平台要求.外部库以及 ...
- Hadoop0.20.2 Bloom filter应用演示样例
1. 简单介绍 參见<Hadoop in Action>P102 以及 <Hadoop实战(第2版)>(陆嘉恒)P69 2. 案例 网上大部分的说明不过依照<Hadoop ...
- php小写金额转大写
public static function amountInWords($num) { if (!is_numeric($num) || empty($num)) ...
- 模式识别 - libsvm该函数的调用方法 详细说明
libsvm该函数的调用方法 详细说明 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26261173 须要载入(load)SVM ...
- 【iOS发展-28】制造业UITabBarController标记控制器、定制UITabBarItem文字图像6途径和More评论
一个.一个简单的制作过程(实际工程中不建议这样的方式,不要只展示所用原理的理解) 在AppDelegate.m在: - (BOOL)application:(UIApplication *)appli ...
- MVC中使用SignalR
MVC中使用SignalR打造酷炫实用的即时通讯功能附源码 前言,现在这世道写篇帖子没个前言真不好意思发出来.本贴的主要内容来自于本人在之前项目中所开发的一个小功能,用于OA中的即时通讯.由于当时 ...
- 5、VS2010+ASP.NET MVC4+EF4+JqueryEasyUI+Oracle该项目的开发——使用datagrid做报表
来点需要:我使用的数据库访问EF框架,但是,因为使用一个动态表来的统计报告中.单独是每天产生基于数据表,它是很难使用EF加盟前.所以我包装在两组数据库存取层的框内,一个是EF,一种是传统的ADO.NE ...