python利用os模塊編寫(xiě)文件復(fù)制功能——copy()函數(shù)用法
我就廢話不多說(shuō)了,大家還是直接看代碼吧~
#文件復(fù)制import ossrc_path=r’E:Pycharmpython100題代碼’target_path=r’E:Pycharmpython100題123’#封裝成函數(shù)def copy_function(src,target): if os.path.isdir(src) and os.path.isdir(target): filelist=os.listdir(src) for file in filelist: path=os.path.join(src,file) if os.path.isdir(path): copy_function(path,target) with open(path,’rb’) as rstream: container=rstream.read() path1=os.path.join(target,file) with open(path1,’wb’) as wstream: wstream.write(container) else: print(’復(fù)制完畢!’)copy_function(src_path,target_path)
#改進(jìn)后的文件復(fù)制,可以遞歸復(fù)制文件,之前的文件復(fù)制不能復(fù)制文件夾import ossrc_path=r’E:Pycharmpython100題代碼’target_path=r’E:Pycharmpython100題123’def copy_function(src,target): if os.path.isdir(src) and os.path.isdir(target): filelist=os.listdir(src) for file in filelist: path=os.path.join(src,file) if os.path.isdir(path): #判斷是否為文件夾 target1=os.path.join(target,file) os.mkdir(target1) #在目標(biāo)文件下在創(chuàng)建一個(gè)文件夾 copy_function(path,target1) else: with open(path, ’rb’) as rstream: container = rstream.read() path1 = os.path.join(target, file) with open(path1, ’wb’) as wstream: wstream.write(container) else: print(’復(fù)制完畢!’)copy_function(src_path, target_path)
補(bǔ)充知識(shí):python復(fù)制文件夾(包含os庫(kù)多種函數(shù)的)
看代碼吧~
import os#調(diào)出os庫(kù)#文件的復(fù)制def mycopy(file1,file2):#定義一個(gè)mycopy函數(shù)用于復(fù)制文件f1=open(file1,'rb')#以讀取模式打開(kāi)file1f2=open(file2,'wb')#以清空寫(xiě)模式打開(kāi)file2content = f1.readline()#將第一行數(shù)據(jù)賦給contentwhile len(content)>0:#如果讀取到的數(shù)據(jù)長(zhǎng)度不為0則循環(huán)執(zhí)行f2.write(content)#在file2里寫(xiě)下contentcontent=f1.readline()#再讀一行賦給contentf1.close()#關(guān)閉file1f2.close()#自定義目錄復(fù)制函數(shù)def copydd(dir1,dir2):#定義復(fù)制文件夾函數(shù)coppydd#獲取被復(fù)制目錄中的所有文件信息dlist = os.listdir(dir1)#以列表模式賦給dlist#創(chuàng)建新目錄os.mkdir(dir2)#創(chuàng)建新文件夾dir2#遍歷所有文件并執(zhí)行文件復(fù)制for f in dlist:#讓f在dlist中遍歷#為遍歷的文件添加目錄路徑file1 = os.path.join(dir1,f)#將f遍歷出的文件名給file1(dir1+f即路徑+文件名)file2 = os.path.join(dir2,f)#同樣也給file2#判斷是否是文件if os.path.isfile(file1):#判斷是否為文件的方式為os庫(kù)中的函數(shù) os.path.isfile(文件名)mycopy(file1,file2)#調(diào)用自定義的mycopy函數(shù)復(fù)制文件if os.path.isdir(file1):#如果是文件夾的話 那就調(diào)用自身(自身就是復(fù)制文件夾嘛)e而處理的不是dir1,dir2,是file1,file2,因?yàn)榇藭r(shí)文件夾同文件一起被f遍歷,此處判斷的就是f遍歷出的是文件還是文件夾coppydd(file1,file2)#調(diào)用自身 遞歸思想#測(cè)試copydd('./aa','./bb')#當(dāng)前文件夾中的aa文件夾復(fù)制到bb文件夾 沒(méi)有會(huì)自動(dòng)創(chuàng)建
以上這篇python利用os模塊編寫(xiě)文件復(fù)制功能——copy()函數(shù)用法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. PHP循環(huán)與分支知識(shí)點(diǎn)梳理2. 無(wú)線標(biāo)記語(yǔ)言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁(yè)3. 前端從瀏覽器的渲染到性能優(yōu)化4. ASP基礎(chǔ)入門(mén)第三篇(ASP腳本基礎(chǔ))5. 利用CSS3新特性創(chuàng)建透明邊框三角6. css代碼優(yōu)化的12個(gè)技巧7. 解析原生JS getComputedStyle8. 讀大數(shù)據(jù)量的XML文件的讀取問(wèn)題9. ASP實(shí)現(xiàn)加法驗(yàn)證碼10. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)
