日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python下的所有文件_python批量复制文件夹下所有文件大小

發布時間:2024/9/19 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python下的所有文件_python批量复制文件夹下所有文件大小 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python復制文件夾下所有文件

Python---進階---文件操作---獲取文件夾下所有文件的數量和大小

一、####編寫一個程序,統計當前目錄下每個文件類型的文件數

####思路:

- 打開當前的文件夾

- 獲取到當前文件夾下面所有的文件

- 處理我們當前的文件夾下面可能有文件夾的情況(也打印出來)

- 做出統計

import os

#獲取到當前文件夾下面所有的文件

all_files = os.listdir(os.curdir) #os.curdir 表示當前目錄 curdir:currentdirectory

type_dict = dict()

for each_file in all_files:

# 如果說我們的each_file是文件夾

if os.path.isdir(each_file):

type_dict.setdefault("文件夾", 0)

type_dict["文件夾"] += 1

else:

# 如果不是文件夾,而是文件,統計我們的文件

ext = os.path.splitext(each_file)[1] #獲取到文件的后綴

type_dict.setdefault(ext, 0)

type_dict[ext] += 1

for each_type in type_dict:

print("該文件夾下面有類型為{}的文件{}個".format(each_type, type_dict[each_type]))

二、

# 編寫一個程序,計算當前文件夾下面所有文件的大小

- 打開當前的文件夾

- 獲取到所有的文件, 和文件大小

- 保存我們獲取到的數據,然后打印出來

import os

all_files = os.listdir(os.curdir)

file_dict = dict()

for each_file in all_files:

# 判斷我們的這個each_file是否是文件

if os.path.isfile(each_file):

file_size = os.path.getsize(each_file)

file_dict[each_file] = file_size

for each in file_dict.items():

print("{}大小{}".format(each[0], each[1]))

用Python批量復制文件,方法有9種

當我們復制一個文件時用復制粘貼就可以了,如果是多個文件呢?就會很麻煩了,今天給大家介紹一下用Python批量復制文件,方法有九種!希望對你有幫助

1. Shutil Copyfile()方法

該方法只有在目標可寫時才將源的內容復制到目的地。如果您沒有寫入權限,則會引發IOError。

它通過打開輸入文件進行閱讀,忽略其文件類型。接下來,它不會對特殊文件進行任何不同的處理,也不會將它們復制為新的特殊文件。

所述的CopyFile()方法利用較低級別的功能的copyfileobj()的下方。它將文件名稱作為參數,打開它們并將文件句柄傳遞給copyfileobj()。該方法中有一個可選的第三個參數,您可以使用它來指定緩沖區長度。然后它將打開文件以讀取指定緩沖區大小的塊。但是,默認行為是一次性讀取整個文件。

以下是有關copyfile()方法的要點。

它將源的內容復制到名為目標的文件。如果目的地不可寫,則復制操作將導致IOError異常。如果源文件和目標文件都相同,它將返回SameFileError。但是,如果目的地以不同的名稱預先存在,則副本將覆蓋其內容。如果目的地是目錄,則意味著此方法將不會復制到目錄,將會發生錯誤13。它不支持復制文件,如字符或塊設備和管道。

2. Shutil Copy()方法

copy()方法的功能類似于"CP"在Unix命令。這意味著如果目標是一個文件夾,那么它將在其中創建一個與源文件相同的名稱(basename)的新文件。此外,該方法將復制其內容后將目標文件的權限與源進行同步。 如果要復制相同的文件,它也會拋出SameFileError。

3. Shutil Copyfileobj()方法

此方法將文件復制到目標路徑或文件對象。如果目標是文件對象,則需要在調用copyfileobj()之后明確關閉它。它假設一個可選參數(緩沖區大小),您可以使用它來提供緩沖區長度。這是在復制過程中保存在內存中的字節數。系統使用的默認大小為16KB。

4. Shutil Copy2()方法

但是,copy2()方法的功能類似于copy()。但是,在復制數據的同時,也可以在元數據中添加訪問和修改時間。復制同一個文件會導致SameFileError。

對于好奇 – Copymode()與Copystat()之間的區別。

5. Os Popen()方法

該方法創建一個指向或來自該命令的管道。它返回一個連接到管道的打開的文件對象。您可以根據文件打開模式(即'r'(默認)或'w')使用它進行讀取或寫入。

模式 –它可以是'r'(默認)或'w'。fsize –如果其值為0,則不會發生緩沖。如果設置為1,則在訪問文件時將進行行緩沖。如果您提供的值大于1,則緩沖將以指定的緩沖區大小進行。但是,對于負值,系統將采用默認緩沖區大小。

對于Windows操作系統。

對于Linux操作系統。

6. Os System()方法

它是運行任何系統命令的最常見方式。使用system()方法,可以在subshell中調用任何命令。在內部,這種方法會調用標準的C庫函數。

此方法返回命令的退出狀態。

對于Windows操作系統。

對于Linux操作系統。

7.以Async方式使用線程庫的Python文件復制

如果要以異步方式復制文件,請使用以下方法。在這里,我們使用Python的線程模塊在后臺運行復制操作。

使用此方法時,請確保采用鎖定以避免死鎖。如果您的應用程序正在使用多個線程讀取/寫入文件,您可能會面對它。

8.使用子進程的Call()方法在Python中復制一個文件

子進程模塊提供了一個簡單的界面來處理子進程。它使我們能夠啟動子進程,附加到其輸入/輸出/錯誤管道,并檢索返回值。

子流程模塊旨在替代傳統模塊和功能,如os.system,os.spawn *,os.popen *,popen2。*。

它公開一個call()方法來調用系統命令來執行用戶任務。

9.使用子進程的Check_output()方法在Python中復制文件

使用子進程的check_output()方法,可以運行外部命令或程序并捕獲其輸出。它還支持管道。

學會了嗎?

以上就是本次給大家分享的關于java的全部知識點內容總結,大家還可以在下方相關文章里找到相關文章進一步學習,感謝大家的閱讀和支持。

總結

以上是生活随笔為你收集整理的python下的所有文件_python批量复制文件夹下所有文件大小的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。