今天在做資料標註的時候遇到乙個問題,就是如何把我需要的jpg格式的資料從資料夾裡提取出來,這裡注意:我的資料夾裡不止有jpg格式的資料,還有其他亂七八糟的格式資料。
除了上面的要求之外,我還需要對每個jpg格式的檔案還像之前一樣存放在對應的目錄下,而不是弄成一鍋粥。
下面給出python**:
說明:1、path是你的資料集存放目錄
2、target_path是你需要存放的位置
3、拓展:你可以修改**中的str的值來到達你想提取的格式,我這裡只提取jpg格式
import os,sys
import shutil
import glob
"""說明:本程式是拷貝jpg**的**,會拷貝給定目錄中所有的jpg格式的檔案到指定的target_path中
"""path = r"d:/資料集/01-250"
# 需要儲存到的路徑
target_path = "d:/2/"
dir =
for root, dirs, files in os.walk(path):
# print(root) #當前目錄路徑
# print(dirs) #當前路徑下所有子目錄
# print(files) #當前路徑下所有非目錄子檔案
print(dir)
if os.path.exists(target_path):
pass
else:
os.makedirs(target_path)
for file_name in dir:
# 目錄
# 提取資料夾內所有檔案的字尾
print("發現在", file_name, "中有檔案", "一共有jpg格式的", len(image_file_list), "張\n")
#if os.path.exists(image_file):
# 提取最後乙個檔名
last_file_name = file_name.split("/")[-1]
# 建立新的資料夾
new_file_name = os.path.join(target_path, last_file_name)
if os.path.exists(new_file_name):
continue
else:
os.makedirs(new_file_name)
# 複製檔案
#print("%s中需要%s複製檔案 \n"%(file_name, len(image_file_list)))
def _progress(oringal, target, count, total_size):
sys.stdout.write(
'\r>> 正在拷貝%s中的檔案到%s 已完成%.1f%%' % (oringal, target, float(count) / float(total_size) * 100.0))
sys.stdout.flush()
for i,image in enumerate(image_file_list):
_progress(file_name, new_file_name, i, len(image_file_list))
shutil.copy(image, new_file_name)
print("\n")
else:
continue
WIndows下提取乙個資料夾下的檔名list
背景 windows下,提取乙個資料夾下的檔名list 不帶字尾名 實現 獲取檔案路徑下的檔名 void getfiles string path,vector files else while findnext hfile,fileinfo 0 findclose hfile 將檔案路徑下的xml...
找出乙個資料夾下的所有檔案
找出乙個資料夾下的所有檔案,用遞迴方法實現 給出乙個資料夾,找出資料夾下面的所有檔案 class findfile public function checkdir return true public function find file reset allfile 把陣列指標重新指向第乙個元素 ...
python如何讀取乙個資料夾下的多個檔案(夾)?
coding utf 8 import os allfilenum 0 列印乙個目錄下的所有資料夾和檔案 def printpath level,path global allfilenum 使用全域性變數allfilenum 存放當前目錄下所有資料夾的列表 dirlist 存放當前目錄下所有檔案的...