當前位置:首頁 » 編程語言 » shutilmovepython

shutilmovepython

發布時間: 2023-05-19 13:42:39

『壹』 說說在 python 中如何復制、移動、改名以及刪除文件或文件夾

要實現復制、移動、改名以及刪除文件或文件夾,需要用到 shutil 模塊,shutil 是 shell util 的簡寫形式,表示 shell 工具。

調用 shutil.(source, destination) 來實現復制文件或文件夾功能,依據 destination 進行區分:

運行結果:

注意: 指定復制的文件夾必須存在,否則會拋出 FileNotFoundError。

shutil 的 tree(source, destination) 方法會復制整個文件夾,包括它所包含的所有文件夾和文件。source
指定源文件夾,destination 指定新的文件夾。source 和 destination 入參都是字元串。該函數會返回新文件夾的路徑。destination 如果不存在,會自動創建。請看下例:

運行結果:

shutil.move(source, destination) 方法會將路徑 source 處的文件移動到路徑 destination,並返回新位置的絕對路徑的字元串。
如果 destination 指向一個文件夾, source 處的文件將移動到 destination 中, 並保持原來的文件名。

運行結果:

注意:

os 模塊中的函數,可以實現刪除一個文件或一個空文件夾。而 shutil 更強大,使用它可以刪除一個非空文件夾!

注意: 因為是永久刪除,所以使用這些函數一定要小心!建議調試程序時, 先注釋掉這些刪除方法,
然後加上 print(), 把要被刪除的文件列印出來,確認後,再執行。

列印出來的文件列表確認無誤後,再執行 os.unlink(filename) 執行刪除操作。

send2trash 模塊會將文件夾或文件發送到計算機的回收站。首先,安裝它:

安裝成功後,調用 send2trash.send2trash 方法,就可以把文件夾或文件發送到計算機的回收站。請看下例:

建議使用 send2trash.send2trash() 函數來刪除文件或文件夾,因為以後還可以從回收站還原。但這樣做,不
會釋放磁碟空間。如果我們還是希望程序釋放磁碟空間, 就要用 os 和 shutil 來刪除文件和
文件夾(記得使用之前提出的 print 技巧)。還有一點需要注意, send2trash() 函數只能將文件送到回收站, 但不能從回收站中恢復文件。

『貳』 Python 中怎樣刪除zip壓縮文件夾中某個文件


PyZipFile
方法很簡陋。
是把
zip壓縮包裡面的文件,除了要刪除的文件以外,逐個讀取出來,保存到新文件中。最後用新文件覆蓋舊文件。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#
coding=utf-8
import
zipfile
import
your_delet_file="你要刪除的文件名"
old_zipfile='archive.zip'
#新文件
new_zipfile='archve_new.zip'
#新文件
zin
=
zipfile.ZipFile
(old_zipfile,
'r')
#讀取對象
zout
=
zipfile.ZipFile
(new_zipfile,
'w')
#被寫入對象
for
item
in
zin.infolist():
buffer
=
zin.read(item.filename)
if
(item.filename!=
your_delet_file):
#剔除要刪除的文件
zout.writestr(item,
buffer)
#把文件寫入到新對象中
zout.close()
zin.close()
#用新文件覆蓋舊文件
shutil.move(new_zipfile,old_zipfile)

『叄』 python的shutil.move是不是很慢

是會慢很多
shutil.move的代碼,如果src是dir,dst存在也是dir,
則先復制再刪除src,所以會很慢,操作系統中是直接移動所以快

def move(src, dst):
"""Recursively move a file or directory to another location.

If the destination is on our current filesystem, then simply use
rename. Otherwise, src to the dst and then remove src.
A lot more could be done here... A look at a mv.c shows a lot of
the issues this implementation glosses over.

"""

try:
os.rename(src, dst)
except OSError:
if os.path.isdir(src):
if destinsrc(src, dst):
raise Error, "Cannot move a directory '%s' into itself '%s'."
% (src, dst)
tree(src, dst, symlinks=True)
rmtree(src)
else:
2(src,dst)
os.unlink(src)

『肆』 python shuutil.move對異常的處理

可以先判斷再做處理。用os.path.isfile函數

『伍』 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 ) 遞歸刪除一個目錄以及目錄內的所有內容

『陸』 Python shutil 模塊

shutil 可以看作 sh + util,即 shell 工具之意,該模塊提供了一些針對文件和文件夾的高級操作,如:拷貝、刪除、移動等,shutil 模塊是對 os 模塊的補充。

fileobj(fsrc, fdst, length=16*1024)

復制對象 fsrc 的內容到 fdst,如果 fdst 不存在則自動創建,length 表示緩沖大小,如果是負數表示直接復制,默認為值為 16*1024。示例如下:

shutil.file(src, dst, *, follow_symlinks=True)

復制文件 src 的內容到 dst 並返回 dst,如果 dst 不存在則自動創建,src 和 dst 是字元串類型的路徑名,如果 src 和 dst 指向同一個文件,拋出 SameFileError。示例如下:

mode(src, dst, *, follow_symlinks=True)

復制文件 src 的許可權到 dst,src 和 dst 是字元串類型的路徑名,如果 follow_symlinks 為 False 且 src 和 dst 都是符號鏈接或友,將修改 dst 符號鏈接文件而非源文件的許可權。示例如下:

stat(src, dst, *, follow_symlinks=True)

復制 src 的許可權、最後訪問時間、最後修改時間以及標志到 dst,src 和 dst 是字元串類型的路徑名,可以是文件或目錄,在Linux平台上還會復制擴展屬性。示例如下:

(src, dst, *, follow_symlinks=True)

復制文件 src 的內容和許可權到 dst,dst 可以是文件或文件夾,如果是文件,函數的返回值就是 dst,如果是文件夾,函數的返回值就是 src 的文件名與 dst 的路徑拼接,src 和 dst 都是字元串類型,如果 dst 指向一個文件夾,則創建與 src 同名的新文件。示例如下:

2(src, dst, *, follow_symlinks=True)

該方法會保留 src 的所有元數據(如創建時間、修改時間等),其他與 () 相同,當 follow_symlinks 為 False 且 src 為軟鏈接時,dst 將作為軟鏈接被創建並拷貝 src 的所有元數據到 dst。示例如下:

ignore_patterns(*patterns)

創建並返回一個函數,可傳遞到 tree() 中作為 ignore 參數的值,忽略滿足匹配模式的文件和目錄。示例如下:

tree(src, dst, symlinks=False, ignore=None, _function=2, ignore_dangling_symlinks=False)

遞歸復制以 src 為根目錄的整個目錄樹,返回目標目錄 dst,dst 必須是不存在的目錄,它和它不存在的父目錄都將被創建,使用 stat() 復制目錄元數據,使用 2() 復制文件內容和元數據。

示例如下:

rmtree(path, ignore_errors=False, onerror=None)

刪除目錄,path 必須指定一個目錄。示例如下:

move(src, dst, _function=2)

移動文件或目錄到目標位置,如果目標位置 dst 是一個存在扒配的目錄,將 src 移動到 dst 路徑下。示例如下:

disk_usage(path)

檢測磁碟使用信息,衫此槐返回值為元組。示例如下:

which(cmd, mode=os.F_OK | os.X_OK, path=None)

返回 cmd 調用的可執行文件路徑,沒有返回 None。mode:用於判斷文件是否存在或可執行,path:cmd 的查找路徑。示例如下:

chown(path, user=None, group=None)

改變指定 path 的所有者和所屬組,user 和 group 參數,可以是系統上的用戶名、組名或 uid/gid,至少需要傳遞其中一個參數。

make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, dry_run=0, owner=None, group=None, logger=None)

創建歸檔文件,並返回歸檔文件的名稱。

看下示例:

get_archive_formats()

返回支持的歸檔格式列表,列表中的每個元素是 (name, description) 形式的元組。示例如下:

register_archive_format(name, function, extra_args=None, description=』』)

注冊一個格式名並綁定到一個壓縮時使用的程序,function 是用於解包存檔文件的可調用函數。

unregister_archive_format(name)

從支持的歸檔格式中移除 name。

unpack_archive(filename, extract_dir=None, format=None)

解壓歸檔文件。filename:歸檔文件名稱;extract_dir:歸檔文件解壓的目標位置;format:使用指定格式的解壓器解壓歸檔文件。

register_unpack_format(name, extensions, function, extra_args=None, description=』』)

注冊格式為 name 的解壓器。

unregister_unpack_format(name)

從支持的解壓格式中移除 name。

get_unpack_formats()

返回支持的解壓格式列表,列表中的每個元素是 (name, extensions, description) 形式的元組。

get_terminal_size()

查詢終端大小。示例如下:

『柒』 python shutil.move shutil.哪個快

文件的話shutil.move快,目錄的話shutil.
由於shutil.move移動目錄時也是進行操作,然後再刪除

『捌』 python 出現路徑已存在的錯誤

這個應該是你的dstDir中已經存在了和你srcDir相同的文件,我也遇到過這個情況

『玖』 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對象


熱點內容
ftp搭建win7 發布:2025-05-20 10:06:06 瀏覽:82
訪問堅果 發布:2025-05-20 10:06:02 瀏覽:394
ftpxlight 發布:2025-05-20 10:05:22 瀏覽:111
java的實驗報告 發布:2025-05-20 10:02:06 瀏覽:528
豪華配置高電動轎車有哪些 發布:2025-05-20 10:01:59 瀏覽:487
哪些電腦配置低 發布:2025-05-20 09:34:16 瀏覽:955
地板網站源碼 發布:2025-05-20 09:27:23 瀏覽:346
安卓視頻轉換器怎麼使用 發布:2025-05-20 09:20:52 瀏覽:544
telnet批量腳本 發布:2025-05-20 09:11:58 瀏覽:627
搭建jrebel伺服器 發布:2025-05-20 08:57:40 瀏覽:903