1. 程式人生 > 程式設計 >python利用os模組編寫檔案複製功能——copy()函式用法

python利用os模組編寫檔案複製功能——copy()函式用法

我就廢話不多說了,大家還是直接看程式碼吧~

#檔案複製
import os
src_path=r'E:\Pycharm\python100題\程式碼'
target_path=r'E:\Pycharm\python100題\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):
     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('複製完畢!')
copy_function(src_path,target_path)
#改進後的檔案複製,可以遞迴複製檔案,之前的檔案複製不能複製資料夾
import os
src_path=r'E:\Pycharm\python100題\程式碼'
target_path=r'E:\Pycharm\python100題\123'

def copy_function(src,file)
    if os.path.isdir(path):   #判斷是否為資料夾
     target1=os.path.join(target,file)
     os.mkdir(target1) #在目標檔案下在建立一個資料夾

     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('複製完畢!')
copy_function(src_path,target_path)

補充知識:python複製資料夾(包含os庫多種函式的)

看程式碼吧~

import os#調出os庫
#檔案的複製
def mycopy(file1,file2):#定義一個mycopy函式用於複製檔案

	f1=open(file1,"rb")#以讀取模式開啟file1
	f2=open(file2,"wb")#以清空寫模式開啟file2

	content = f1.readline()#將第一行資料賦給content
	while len(content)>0:#如果讀取到的資料長度不為0則迴圈執行
		f2.write(content)#在file2裡寫下content
		content=f1.readline()#再讀一行賦給content

	f1.close()#關閉file1
	f2.close()

#自定義目錄複製函式
def copydd(dir1,dir2):#定義複製資料夾函式coppydd
	#獲取被複制目錄中的所有檔案資訊
	dlist = os.listdir(dir1)#以列表模式賦給dlist
	#建立新目錄
	os.mkdir(dir2)#建立新資料夾dir2
	#遍歷所有檔案並執行檔案複製
	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庫中的函式 os.path.isfile(檔名)
			mycopy(file1,file2)#呼叫自定義的mycopy函式複製檔案	
		if os.path.isdir(file1):#如果是資料夾的話 那就呼叫自身(自身就是複製資料夾嘛)e而處理的不是dir1,dir2,是file1,file2,因為此時資料夾同文件一起被f遍歷,此處判斷的就是f遍歷出的是檔案還是資料夾
			coppydd(file1,file2)	#呼叫自身 遞迴思想
	
#測試
copydd("./aa","./bb")#當前資料夾中的aa資料夾複製到bb資料夾 沒有會自動建立

以上這篇python利用os模組編寫檔案複製功能——copy()函式用法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。