python 檔案和資料夾的複製 剪下 批量改名

2021-10-24 09:03:35 字數 3305 閱讀 7113

一、單個資料夾建立:os.mkdir

import os

if os.path.exists(r'e:\python測試資料\excel檔案') == false:

os.mkdir(r'e:\python測試資料\excel檔案')

print('資料夾建立成功!')

else:

print('資料夾已存在!')

二、多層資料夾建立:os.makedirs

import os

fld = r'e:\aaa\bbb\ccc\ddd\eee\fff\ggg'

if os.path.exists(fld) == false:

os.makedirs(fld)

print('資料夾建立成功!')

else:

print('資料夾已存在!')

三、shutil模組—複製1.複製檔案

import os

import shutil

src = r'e:\python測試資料\excel檔案\位址1'

dst = r'e:\python測試資料\excel檔案\位址2'

shutil.copy(src+'/demo.xlsx',dst)

如果需要把檔案的相關建立時間也複製過來,把shutil.copy改為shutil.copy2就可以了。

如果需要複製檔案並進行改名,第二個引數直接改就可以:

shutil.copy2(src+'/demo.xlsx',dst+'/123.xlsx')
2.複製資料夾

import os

import shutil

src = r'e:\python測試資料\excel檔案\位址1\demo資料夾'

dst = r'e:\python測試資料\excel檔案\位址2\demo'

shutil.copytree(src,dst)

上面的功能就是把位址1 中的demo資料夾複製到了位址2資料夾下面,並把資料夾改名為demo(裡面的檔案也一起複製過來了)

四、shutil模組—剪下

剪下檔案和複製檔案用法幾乎一模一樣

import os

import shutil

src = r'e:\python測試資料\excel檔案\位址1'

dst = r'e:\python測試資料\excel檔案\位址2'

shutil.move(src+'/demo.xlsx',dst)

剪下資料夾和複製資料夾用法也幾乎一模一樣,就不列出來了。

把shutil.copytree改為shutil.move就可以了。

五、shutil模組—刪除資料夾

import os

import shutil

dst = r'e:\python測試資料\excel檔案\位址2'

shutil.rmtree(dst)

六、重新命名檔案和資料夾檔案改名的話,用os.rename方法就可以

import os

src = r'e:\python測試資料\excel檔案\位址1\demo.xlsx'

os.rename(src,'e:\python測試資料\excel檔案\位址1\測試.xlsx')

因為rename第二個引數是位址+檔名的形式,所以可以通過更改第二個引數內容更改要存放的地方,相當於剪下並改名~

os.rename(src,'e:\python測試資料\excel檔案\位址2\測試.xlsx')
這樣就把檔案從位址1移動到位址2上面,並改了名字

七、小練習:

根據檔案的建立日期更改檔名稱,在檔案前面新增個日期

我開始想著這樣操作(錯誤示範):

import os

import datetime as dt

fld = 'e:\python測試資料\excel檔案'

def 批量改名(fld):

for f in os.scandir(fld):

if os.path.isdir(f):

批量改名(fld)

else:

mydt = dt.datetime.fromtimestamp(f.stat().st_mtime)

mydt = str(mydt.year) + "-" + str(mydt.month) + "-" + str(mydt.day)

f.name = mydt + f.name

批量改名(fld)

然後呢,f.name是唯讀屬性,也就是說這樣改是改不了的~需要用到os.rename方法進行更改。

另外需要注意的是,更改檔名稱的os.rename第二個引數是需要加上檔案所在資料夾名稱,所以要用到os.path.dirname獲取所在的資料夾

正確示範:

import os

import datetime as dt

fld = r'e:\python測試資料\excel檔案'

def 批量改名(fld):

for f in os.scandir(fld):

if os.path.isdir(f):

批量改名(fld)

else:

mydt = dt.datetime.fromtimestamp(f.stat().st_ctime)

mydt = str(mydt.year) + "-" + str(mydt.month) + "-" + str(mydt.day) + f.name

res = str(os.path.dirname(f)) + "\\" + f.name

dst = str(os.path.dirname(f)) + "\\" + mydt

os.rename(res,dst)

批量改名(fld)

ssh scp 複製檔案和資料夾

複製檔案 1 將本地檔案拷貝到遠端 scp 檔名使用者名稱 計算機ip或者計算機名稱 遠端路徑 本地192.168.1.8客戶端 scp root install.root 192.168.1.12 usr local src 2 從遠端將檔案拷回本地 scp 使用者名稱 計算機ip或者計算機名稱 ...

ssh scp 複製檔案和資料夾

三,複製檔案或目錄命令 複製檔案 1 將本地檔案拷貝到遠端 scp 檔名使用者名稱 計算機ip或者計算機名稱 遠端路徑 本地192.168.1.8客戶端 scp root install.root 192.168.1.12 usr local src 2 從遠端將檔案拷回本地 scp 使用者名稱 計...

Linux檔案和資料夾複製

linux檔案和資料夾複製 1 本地複製 命令 cp 說明 將乙個檔案拷貝至另一檔案,或將數個檔案拷貝至另一目錄。引數 a 盡可能將檔案狀態 許可權等資料都照原狀予以複製。r 若 source 中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地。f 若目的地已經有相同檔名的檔案存在,則在複製前先予以...