檔案的複製和移動

2021-09-20 10:18:29 字數 2732 閱讀 2339

copy

import shutil

with

open

('f:work/002/test.txt'

,'r+'

)as f1:

f1.write(

'abcd\n123'

) f1.flush(

) f1.seek(0)

#注意指標一定要回到0位置.

with

open

('f:work/002/test1'

,'w+'

)as f2:

shutil.copyfileobj(f1,f2)

shutil.copymode(

'test.txt'

,'test1'

)os.stat(

'test.txt')-

----

----

----

----

----

----

----

----

----

----

----

os.stat_result(st_mode=

33206

, st_ino=

562949953421938

, st_dev=

3268133497

, st_nlink=

1, st_uid=

0, st_gid=

0, st_size=

9, st_atime=

1556607462

, st_mtime=

1556607462

, st_ctime=

1556606623

)

os.stat(

"test1")-

----

----

----

----

----

----

----

----

----

----

----

os.stat_result(st_mode=

33206

, st_ino=

562949953421940

, st_dev=

3268133497

, st_nlink=

1, st_uid=

0, st_gid=

0, st_size=

9, st_atime=

1556607469

, st_mtime=

1556607462

, st_ctime=

1556606833

)

copy2比copy多了複製全部元資料,但需要平台支援。本質上呼叫的是:

copytree(src, dst, symlinks=false, ignore=none, copy_function=copy2, ignore_dangling_symlinks=false)

import shutil

shutil.copytree(

'f:/work/002'

,'f:/work/004'

)

def

ignore

(src, names)

:

ig =

filter

(lambda x: x.startswith(

't')

, names)

# 忽略 t開頭的檔案和資料夾

return

set(ig)

shutil.copytree(

'f:/work/002'

,'f:/work/005'

,ignore=ignore)

rm 刪除

shutil.rmtree(path, ignore_errors=false, οnerrοr=none)

遞迴刪除。如同rm -rf一樣危險,慎用。

它不是原子操作,有可能刪除錯誤,就會中斷,已經刪除的就刪除了。

ignore_errors為true,忽略錯誤。當為false或者omitted時onerror生效。

onerror為callable,接受函式function、path和execinfo

shutil.move(

'f:/work/007'

,'f:/work/008'

)#資料夾移動,目標資料夾存在,則報錯,移動後67原資料夾被刪除

os.rename(

'f:/work/005'

,'f:/work/006'

)#資料夾改名

os.rename(

'f:/work/003/test.txt'

,'f:/work/003/aaa.exe'

)#檔案改名

move

移動move(src, dst, copy_function=copy2) 遞迴移動檔案、目錄到目標,返回目標。本身使用的是os.rename方法。如果不支援rename,如果是目錄則copytree再刪除源目錄。預設使用copy2方法。

shutil還有打包功能,生成tat並壓縮,支援zip,gz,bz,xz.

檔案的複製和移動

cp mv的用途是把乙個及以上的原始檔複製 移動到另乙個位置。當原始檔個數大於2時,目的檔案型別必須是已存在的目錄。原始檔型別 目的檔案型別 結果檔案 已存在的目錄 檔案被複製 移動到目的目錄 目錄已存在的目錄 目錄本身連同其內容被複製 移動到目的目錄 當原始檔個數等於1時,則可能在複製 移動檔案的...

檔案的複製 刪除和移動命令

cp命令 該命令的功能是將給出的檔案或目錄拷貝到另一檔案或目錄中,就如同dos下的copy命令一樣,功能非常強大。語法 cp 選項 原始檔或目錄 目標檔案或目錄 說明 該命令把指定的原始檔複製到目標檔案或把多個原始檔複製到目標目錄中。該命令的各選項含義如下 a 該選項通常在拷貝目錄時使用。它保留鏈結...

檔案的複製 刪除和移動命令

檔案的複製 刪除和移動命令 cp命令 該命令的功能是將給出的檔案或目錄拷貝到另一檔案或目錄中,就如同dos下的copy命令一樣,功能非常強大。語法 cp 選項 原始檔或目錄 目標檔案或目錄 說明 該命令把指定的原始檔複製到目標檔案或把多個原始檔複製到目標目錄中。該命令的各選項含義如下 a 該選項通常...