第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果不包含來自多子目錄的 01.jpg,如何過濾文件名

如果不包含來自多子目錄的 01.jpg,如何過濾文件名

喵喵時光機 2021-06-30 13:57:30
我有像圖像一樣的目錄結構,包括 dir_one、dir_twodir_one 不包含任何目錄dir_two 包括 dir_threedir_three 不包含任何目錄dir_one 包含01.jpg、02.jpgdir_two 包含 02.jpg、03.jpgdir_3 包含02.jpg、03.jpg、04.jpg我想要一個關于目錄路徑的列表,如果目錄不包含 01.jpg將附加到一個列表中,然后我將轉換為一個 json 文件    import jsonimport osdef file_name(file_dir):    L=[]    for dirpath, dirnames, filenames in os.walk(file_dir):        for file in filenames :            if os.path.splitext(file)[1] == '.jpg':                L.append(os.path.join(dirpath, file))    return Lfile_dir = 'F:\\tmp\\images'files_list=file_name(file_dir)item_list = set()for item in files_list:    print(item[-6:])    index_of_dir_path = item.rfind('\\')    filter_str='01.jpg'    # if filter_str not in files_list:    if filter_str not in item:        item_list.add(item[0:index_of_dir_path])json_data = {    "dirPath_not_include_01_jpg_file":list(item_list)}target_json_path='out.json'with open(target_json_path, 'w') as f:    json_dumps = json.dumps(json_data, f, ensure_ascii=False, indent=2)    f.write(json_dumps)我希望制作一個 json 文件,例如不包含 dir_one 項目路徑(因為 dir_one 包含 01.jpg){  "dirPath_not_include_01_jpg_file": [    "F:\\tmp\\images\\dir_two\\dir_three",    "F:\\tmp\\images\\dir_four",    "F:\\tmp\\images\\dir_five",    "F:\\tmp\\images\\dir_two"  ]}但不是代碼將包含 dir_one 項目路徑{  "dirPath_not_include_01_jpg_file": [    "F:\\tmp\\images\\dir_two\\dir_three",    "F:\\tmp\\images\\dir_one",    "F:\\tmp\\images\\dir_four",    "F:\\tmp\\images\\dir_five",    "F:\\tmp\\images\\dir_two"  ]}
查看完整描述

1 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

你應該item_list在for循環(huán)外初始化;否則,每次迭代都會覆蓋其先前的值。您還應該創(chuàng)建item_list一個集合,這樣如果.jpg同一目錄下有多個文件,它們就不會導致列表中出現(xiàn)重復的目錄:


item_list=set()

for item in files_list:

    print(item)

    index_of_dir_path = item.rfind('\\')

    print(item[0:index_of_dir_path])

    item_list.add(item[0:index_of_dir_path])

json_data = {

    "dirPath_not_include_01_jpg_file":list(item_list)

}

如果要排除包含的目錄,01.jpg還應該在將文件添加到列表之前檢查它:


for dirpath, dirnames, filenames in os.walk(file_dir):

    if all('01.jpg' not in file for file in filenames):

        for file in filenames :

            if os.path.splitext(file)[1] == '.jpg':

                L.append(os.path.join(dirpath, file))


查看完整回答
反對 回復 2021-07-06
  • 1 回答
  • 0 關注
  • 96 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號