當前位置:首頁 » 編程語言 » python遞歸拷貝文件

python遞歸拷貝文件

發布時間: 2022-06-23 23:58:26

A. python裡面shutil是什麼

shutil 是高級的文件,文件夾壓縮包處理模塊。

1.shutil.fileobj(fsrc, fdst[, length])

將文件內容拷貝到另一個文件中

import shutil
shutil.fileobj(open('old.xml','r'), open('new.xml', 'w'))

2.shutil.file(src, dst)

拷貝文件

shutil.file('f1.log', 'f2.log')

3.shutil.mode(src, dst)

僅拷貝許可權。內容、組、用戶均不變

shutil.mode('f1.log', 'f2.log')

4.shutil.stat(src, dst)

僅拷貝狀態的信息,包括:mode bits, atime, mtime, flags

shutil.stat('f1.log', 'f2.log')

5.shutil.(src, dst)

拷貝文件和許可權

shutil.('f1.log', 'f2.log')

6.shutil.2(src, dst)

拷貝文件和狀態信息

shutil.2('f1.log', 'f2.log')

7.shutil.ignore_patterns(*patterns)

shutil.tree(src, dst, symlinks=False, ignore=None)

遞歸的去拷貝文件夾

shutil.tree('folder1', 'folder2', ignore=shutil.ignore_patterns('*.pyc', 'tmp*'))
shutil.tree('f1', 'f2', symlinks=True, ignore=shutil.ignore_patterns('*.pyc', 'tmp*'))

8.shutil.rmtree(path[, ignore_errors[, onerror]])

遞歸的去刪除文件

shutil.rmtree('folder1')

9.shutil.move(src, dst)

遞歸的去移動文件,它類似mv命令,其實就是重命名。

shutil.move('folder1', 'folder3')

10.shutil.make_archive(base_name, format,...)

創建壓縮包並返迴文件路徑,例如:zip、tar

創建壓縮包並返迴文件路徑,例如:zip、tar

  • base_name: 壓縮包的文件名,也可以是壓縮包的路徑。只是文件名時,則保存至當前目錄,否則保存至指定路徑,
    如:www =>保存至當前路徑
    如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/

  • format: 壓縮包種類,「zip」, 「tar」, 「bztar」,「gztar」

  • root_dir: 要壓縮的文件夾路徑(默認當前目錄)

  • owner: 用戶,默認當前用戶

  • group: 組,默認當前組

  • logger: 用於記錄日誌,通常是logging.Logger對象


B. python怎麼把文件放進文件夾

模塊shutil可以完成對文件的復制與刪除操作:

#從源src復制到dst中去
file(src,dst)

示例1,文件拷貝:

importshutil

#將d盤下的123.txt文件復制到d盤下test目錄中,並重命名為234.txt
shutil.file('d://123.txt','D://test//234.txt')

示例2,遞歸拷貝文件夾:

importshutil

#復制old_path中的目錄到new_path

old_path='D://123'

new_path='d://test//123'

shutil.tree(old_path,new_path)

http://www.cnblogs.com/aslongas/p/6926000.html

C. 求通過python實現,在指定目錄下遍歷所有文件,將以.txt為後綴的文件移動到另一指定目錄中

target_dir = 'home/' #假定要拷貝到home目錄
x = [ item for item in os.walk('.') ] #os.walk遞歸地遍歷所有子文件夾
#返回的是一個list,list中每一個元素由3個部分:(path, dirs, files)
for path, dirs, files in x:
for file in files:
if file.endswith('.txt'): #找到以txt結尾的,之
shutil.( path+os.sep+file , target_dir )

D. 小白有一個關於python遞歸的問題 求教

首先,os是標准庫的一個模塊,而非函數。
遞歸沒有什麼特殊的地方,只是調用一個函數。巧的是,這個函數就是自己而已。你可以想像「查找文件」這個函數有無數個備份,而每次遞歸遇到就隨便哪來用一個,和普通的函數調用沒有什麼區別。
所以,返回父目錄就是在查找文件函數執行完成後執行的。
把你的手掌伸直,五指分開,從手腕開始沿著肉的邊緣走一圈,最終又會回到手腕起點(忽略寬度),哪怕你的手指上又長出若干個小手指,沿著邊緣走一圈,總會回到手腕。這就是遞歸執行的過程,每個手指就是一個遞歸調用。你可以在紙上畫一個樹狀結構,設置三層目錄,按照函數的調用過程來理解。
或者可以這么理解,假如國家要進行人口普查,就可以讓每個省把自己的人口普查的結果回報上來,然後加起來就可以了。那麼國家在加的時候,必須要等所有省都普查完後才能進行加(相當於你的返回上級目錄的操作)。對於每個省來說,類似的,只要讓每個市進行人口普查,然後把結果相加即可。每個省也都要等到它的所有市都普查完畢後才能相加。同理,每個市對於每個縣也是同樣的操作。這就是遞歸的過程。——但需要注意的是,所有縣的普查可以同時進行,但計算機遞歸卻是一個完成後才能進行下一個。和畫手指是一樣的,必須一個手指畫完後才能進行下一個。

E. python如何遞歸查找文件,我下面的代碼是哪裡出錯了,怎麼只能查找當前目錄

判斷isdir用的參數不對,應該是file_path,不應該是i
def listdir (path='.',name=None,dirlist=[]):
#example: arr=adihe.listdir('.') 將返回當前目錄下的所有文件,不許含有空格
files=os.listdir(path.decode('utf-8'))
#獲取目錄
for i in files:
file_path=path+os.sep+i
if os.path.isdir(file_path):
dirlist.append(file_path)
listdir(file_path,name,dirlist)
return dirlist

可以使用os.walk()遍歷所有文件,不用自己寫遞歸函數。
#/bin/python
import os
for root in os.walk(r"d:\newtest"):
print root
print "\n

F. python 遞歸遍歷文件夾

沒有仔細看,但你的第一句就有錯
def distinguish_file(user_paht):
參數應為user_path

G. python shutil模塊函數file和的區別

shutil.file( src, dst) 從源src復制到dst中去。當然前提是目標地址是具備可寫許可權。拋出的異常信息為IOException. 如果當前的dst已存在的話就會被覆蓋掉
shutil.move( src, dst) 移動文件或重命名
shutil.mode( src, dst) 只是會復制其許可權其他的東西是不會被復制的
shutil.stat( src, dst) 復制許可權、最後訪問時間、最後修改時間
shutil.( src, dst) 復制一個文件到一個文件或一個目錄
shutil.2( src, dst) 在上的基礎上再復制文件最後訪問時間與修改時間也復制過來了,類似於cp –p的東西
shutil.2( src, dst) 如果兩個位置的文件系統是一樣的話相當於是rename操作,只是改名;如果是不在相同的文件系統的話就是做move操作
shutil.tree( olddir, newdir, True/Flase)
把olddir拷貝一份newdir,如果第3個參數是True,則復制目錄時將保持文件夾下的符號連接,如果第3個參數是False,則將在復制的目錄下生成物理副本來替代符號連接
shutil.rmtree( src ) 遞歸刪除一個目錄以及目錄內的所有內容

H. python 代碼遞歸及批量處理的問題

這段程序進行遞歸了 ,難道是我大眼一掃沒看到 0.0

I. python 復制文件

報錯多半是這句targetDir = targetDir+'/'+os.path.split(sourceDir)[1]

你這句把本來的targetDir覆蓋了,導致後面的文件的目標文件夾被修改


發個我寫的吧,參考下吧

defFile(sourceDir,targetDir):
ifnotos.path.exists(targetDir):
os.makedirs(targetDir)

forfilenameinos.listdir(sourceDir):
path=os.path.join(sourceDir,filename)
ifos.path.isdir(path):
targetSubDir=os.path.join(targetDir,filename)
File(path,targetSubDir)
else:
targetPath=os.path.join(targetDir,filename)
open(targetPath,'wb').write(open(path,'rb').read())

J. python中怎樣將文件拷貝到指定的目錄下

代碼:

import os
import shutil
from shutil import Error
from shutil import stat
from shutil import 2
src = "" #需要復制的文件目錄
dst = "" #目標目錄
def jiecptree(src, dst, symlinks=False, ignore=None): #聲明函數 ree( 要復制的目錄,目標目錄,復制符號連接內容到新目錄,沒有要忽略文件)
names = os.listdir(src) #獲得要復制目錄的文件名列表,賦給變數 names
if ignore is not None: #如果 ignore 不是None值
ignored_names = ignore(src, names) # src目錄中要忽略文件的名字賦給 ignored_names
else: # 否則
ignored_names = set() #ignore_name 被 不重復空元素集 賦值
if os.path.isdir(dst):
pass
else:
os.makedirs(dst)
# print"dstfirst:"+dst
errors = [] #聲明 errors列
for name in names: #將names里的元素循環復制給name
if name in ignored_names: #如果name在要求被忽略的列里出現
continue #繼續for循環(跳回for,從新循環下個元素)
srcname = os.path.join(src, name) #將路徑名(src)添加到文名(name)之前然後賦值給 srcname
dstname = os.path.join(dst, name) #將路徑名(dst)添加到文名(name)之前然後賦值給 dstcname
from shutil import Error
# print "name:"+name
# print "src:"+src
# print "dst:"+dst
try: #嘗試
if os.path.islink(srcname):
continue
elif os.path.isdir(srcname): #如果srcname路徑是存在
jiecptree(srcname, dstname, symlinks, ignore)
elif os.path.isdir(dstname):
os.remove(dstname)
2(srcname, dstname)
else: # 否則
2(srcname, dstname) # 復制srcname到dstname
# print "srcname:"+srcname
# print "dstname:"+dstname
# XXX What about devices, sockets etc.? #怎樣裝置
except (IOError, os.error), why: #除(IOError[與文件有關的異常],操作系統異常)外,返回原因
errors.append((srcname, dstname, str(why))) # 向errors列里添加,(要復制的目錄,目標目錄,錯誤原因)
# catch the Error from the recursive jiecptree so that we can 從遞歸復制中捕捉這個錯誤,以便於我們能繼續復制其他文件
# continue with other files
except Error, err: #除錯誤外,返回錯誤:
errors.extend(err.args[0]) #擴展 errors 列,添加(err.args[0] 元素)
try: #嘗試
stat(src, dst) # 從src復制許可權位,上次訪問時間,最後修改時間 到 dst,
except WindowsError: # 除 Windows錯誤 外:
# can't file access times on Windows 在Windows上無法復制文件訪問時間
pass # 通過(不作任何處理)
except OSError, why: # 除 操作系統錯誤 外,返回原因:
errors.extend((src, dst, str(why))) #擴展 errors 列,添加(要復制的目錄,目標目錄,錯誤原因)
if errors: # 如果錯誤
raise Error(errors) # 提示錯誤

更多相關內容可參考資料http://www.viiboo.cn

熱點內容
資料庫的欄位命名規則 發布:2025-02-05 13:53:16 瀏覽:683
固定ip自建伺服器訪問 發布:2025-02-05 13:53:03 瀏覽:740
快速獲取文件夾沒文件 發布:2025-02-05 13:52:19 瀏覽:871
伺服器主機如何家用 發布:2025-02-05 13:52:15 瀏覽:99
安卓應用如何刪除自動下載 發布:2025-02-05 13:52:15 瀏覽:660
c語言switch語句用法 發布:2025-02-05 13:49:16 瀏覽:936
騰訊緩存不了的動畫片怎麼辦 發布:2025-02-05 13:49:12 瀏覽:130
access資料庫調用 發布:2025-02-05 13:45:01 瀏覽:49
如何查詢伺服器所有電腦名 發布:2025-02-05 13:21:38 瀏覽:150
我的世界ec伺服器up主稱號怎麼獲得 發布:2025-02-05 13:21:15 瀏覽:913