python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                python學(xué)習(xí)筆記(五歲以下兒童)
深拷貝-淺拷貝
淺拷貝就是對(duì)引用的拷貝(僅僅拷貝父對(duì)象) 深拷貝就是對(duì)對(duì)象的資源拷貝
普通的復(fù)制,僅僅是添加了一個(gè)指向同一個(gè)地址空間的”標(biāo)簽“,東西都是一樣的。改變或者添加,復(fù)制出來(lái)的變量也會(huì)改變 樣例: >>> 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
淺拷貝數(shù)據(jù)不會(huì)獨(dú)立的在復(fù)制一份,僅僅是對(duì)引用的拷貝,每一個(gè)元素的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() 深拷貝會(huì)把全部的數(shù)據(jù)都單獨(dú)的在拷貝一份文件的讀寫
能夠用open函數(shù)。或者file類
open(name[, mode[, buffering]]) file(name[, mode[, buffering]])
fo = open("/code/1.txt") #使用open函數(shù) print fo.read() fo.close()f1 = file("/code/1.txt") #使用file類 print f1.read() f1.close()
mode
r ? ?僅僅讀 r+ ?讀寫。假設(shè)已經(jīng)存在。則從文件指針位置寫入 w ? 寫入,假設(shè)已經(jīng)存在,先刪除原文件,在又一次寫入 w+?讀寫,假設(shè)已經(jīng)存在,先刪除原文件。在又一次寫入 a ? ?寫入。在文件末尾追加新內(nèi)容 a+ ?讀寫,在文件末尾追加新內(nèi)容 b ? ?打開二進(jìn)制文件。能夠于r、w、a、+結(jié)合使用 U ? 支持全部的換行符號(hào)。“\r” "\n" ?"\r\n"
樣例:寫入 #/usr/bin//usr/bin/python2.7 # -*- coding: utf-8 -*- fnew = open('/code/new.txt','w') fnew.write('Hello Python!!') #這時(shí)2還沒(méi)有真正的寫到文件里去,僅僅是在緩沖中 。close或者flush后才寫到文件里去 fnew.close()
文件對(duì)象方法
String = FileObject.read([size]) ?讀取,從文件指針開始讀取,能夠size指定讀取多少 String = FileObject.readline([size]) ?每次讀取一行。并將文件文件指針到下一行 List = FileOject.readlines([size]) ?返回一個(gè)列表,存放沒(méi)一行的字符 FileObject.next() ?返回當(dāng)前行,并將文件文件指針到下一行 與readline不同的地方是,readline把全部行讀完后返回空字符串,next會(huì)發(fā)出警告
FileObject.write(String) 寫入
FileObject.writelines(list) ?多行寫入。效率比write高,速度快
FileObject.seek(偏移量,選項(xiàng)) 選項(xiàng) = 0 將文件指針移到 文件頭部+偏移量處 選項(xiàng) = 1?將文件指針移到 當(dāng)前位置+偏移量處 選項(xiàng) = 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
文件夾操作
通過(guò)os模塊來(lái)實(shí)現(xiàn)文件夾的創(chuàng)建,改動(dòng),遍歷等 創(chuàng)建文件夾(不能創(chuàng)建多級(jí)文件夾) ?os.mkdir(path [, mode=0777]) 創(chuàng)建文件夾(能夠創(chuàng)建多級(jí)文件夾) ?os.makedirs(path [, mode=0777]) 刪除文件夾(不能刪除多級(jí)文件夾)? os.rmdir(path) 刪除文件夾(能夠刪除多級(jí)文件夾) ?os.removedirs(path)列出文件夾 os.listdir(path)? 獲取當(dāng)前文件夾 ?os.getcwd() 切換文件夾 ?os.chdir(path)
版權(quán)聲明:本文博客原創(chuàng)文章,博客,未經(jīng)同意,不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: oc 调用c语言方法和oc的方法调用
- 下一篇: redis 启动时 Warning 警告
