Python基礎---文件File的處理 (二)


文件File的復制

復制

復制需要導入shutil庫  

import shutil

src ---> source 源文件縮寫

dst ---> destination 目的地縮寫

1、copy()

  語法:shutil.copy(src, dst)

  功能:復制文件,如果當前路徑中已存在同名稱文件,則直接覆蓋掉

  返回值:復制后新文件的路徑dst

1 import shutil
2 
3 file_path = r'C:\Users\hasee\Desktop\test_code\test.txt'
4 new_path = r'C:\Users\hasee\Desktop\new.txt'
5 path = shutil.copy(file_path, new_path)
6 print(path)
7 --->C:\Users\hasee\Desktop\new.txt

 可以看到新文件new.txt文件的時間屬性是全新的

2、copy2()

  語法:shutil.copy2(src, dst)

  功能:復制文件,但是會保留原數據,例如原文件的時間等信息

       如果當前路徑中已存在同名稱文件,則直接覆蓋掉

  返回值:復制后新文件的路徑dst

1 import shutil
2 
3 file_path = r'C:\Users\hasee\Desktop\test_code\test.txt'
4 new_path = r'C:\Users\hasee\Desktop\new1.txt'
5 path = shutil.copy2(file_path, new_path)
6 print(path)
7 --->C:\Users\hasee\Desktop\new1.txt

 

可以和copy()方法的截圖看到 修改時間沒有改變

 3、copyfileobj()

  語法:shutil.copyfileobj(fsrc, fdst)  

     參數其實就是兩個文件的指針 open(file_path, mode)

     其中 fsrc 的 mode 為 r

        fdst 的 mode 為 w 或 a

  功能:復制源文件中的內容到目標文件中

1 import shutil
2 
3 file_path = r'C:\Users\hasee\Desktop\test_code\test.txt'
4 new_path = r'C:\Users\hasee\Desktop\new.txt'
5 shutil.copyfileobj(open(file_path, 'r'), open(new_path, 'w'))

4、copyfile()

  語法:shutil.copyfile(src, dst)

  功能:復制源文件中的內容到目標文件中,默認源文件為讀取r狀態,目標文件為寫入w狀態

1 import shutil
2 
3 file_path = r'C:\Users\hasee\Desktop\test_code\test.txt'
4 new_path = r'C:\Users\hasee\Desktop\new.txt'
5 shutil.copyfile(file_path, new_path)

5、copytree()

  語法:shutil.copytree(src, dst)

  功能:復制整個目錄或文件夾,如果當前路徑中已經存在目錄,則會報錯

  返回值:dst

1 import shutil
2 
3 dir_path = r'C:\Users\hasee\Desktop\test_code'
4 new_path = r'C:\Users\hasee\Desktop\new'
5 shutil.copytree(dir_path, new_path)

6、copymode()

  語法:shutil.copymode(src, dst)

  功能:復制源文件的所有權限,但是其他不復制

1 import shutil
2 # 在例子中,我設置了test.txt為只讀,通過復制,new.txt也變成了只讀
3 file_path = r'C:\Users\hasee\Desktop\test_code\test.txt'
4 new_path = r'C:\Users\hasee\Desktop\new.txt'
5 shutil.copymode(file_path, new_path)

7、copystat()

  語法:shutil.copystat(src, dst)

  功能:復制原數據(狀態) 例如訪問修改等時間信息

1 import shutil
2 
3 file_path = r'C:\Users\hasee\Desktop\test_code\test.txt'
4 new_path = r'C:\Users\hasee\Desktop\new.txt'
5 shutil.copystat(file_path, new_path)

8、rmtree()

  語法:shutil.rmtree(path)

  功能:移除整個目錄,不管是否為空

1 import shutil
2 
3 new_path = r'C:\Users\hasee\Desktop\new'
4 shutil.rmtree(new_path)

 

  移除的目錄不經過回收站,徹底刪除

 

9、move()

  語法:shutil.move(src, dst)

  功能:剪切操作,文件or目錄

  返回值:新的path

1 import shutil
2 
3 file_path = r'C:\Users\hasee\Desktop\新建文本文檔.txt'
4 new_path = r'C:\Users\hasee\Desktop\new\new_file.txt'
5 shutil.move(file_path, new_path)

 

10、which()

  語法:shutil.which(cmd)

     cmd ---> command 命令提示符

  功能:檢測命令對應的文件路徑

1 import shutil
2 
3 path = shutil.which('ipconfig')
4 print(path)
5 --->C:\Windows\system32\ipconfig.EXE

 

  在Windows中,命令文件以.exe結尾,Linux中則不是

11、disk_usage()

  語法:shutil.disk_usage(path)

       Windows中,path為盤符;Linux中,path = ' / '

  功能:查看磁盤使用量,單位:字節

1 import shutil
2 
3 cap = shutil.disk_usage('C:')
4 print(cap)
5 --->usage(total=106848841728, used=46785527808, free=60063313920)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM