簡體   English   中英

Python弄亂了我的Windows文件夾圖標

[英]Python messing up my windows folder icon

我正在使用圖標顏色代碼來組織某些文件夾中的數據。 直觀地,您立即知道文件夾包含的數據類型。

這些文件夾由軟件提供。 到目前為止,我一直在手動排序數據(每天花了我1個小時)。

然后,我制作了一個腳本,該腳本讀取文件名,將它們放在它們所屬的位置,然后刪除不需要的文件名。

但是,每次我的Python腳本訪問這些文件夾之一時,它將其圖標恢復為常規圖標(Windows 7默認文件夾圖標)

這是移動文件的代碼:

def move_safely_to(destination, file_name_with_path):
    if not os.path.exists(destination):
        os.makedirs(destination)
    try:
        shutil.move(file_name_with_path, destination)
    except shutil.Error:
        i = 0
        file_name_without_path = os.path.split(file_name_with_path)[1]
        while os.path.isfile(join(destination, file_name_without_path+str(i))):
            i += 1
        os.rename(file_name_with_path, join(os.path.split(file_name_with_path)[0], os.path.split(file_name_with_path)[1]+str(i)))
        shutil.move(file_name_with_path+str(i), destination)

def get_all_files_from(my_path):
    """return all filename in a folder, without their path"""
    file_list_without_path = [ f for f in listdir(my_path) if isfile(join(my_path,f)) ]
    return file_list_without_path

def get_all_folders_from(my_path):
    """ return all folder in a folder without their path"""
    folder_list_without_path = [ f for f in listdir(my_path) if not isfile(join(my_path,f)) ]
    return folder_list_without_path

def get_all_files_from_folder_and_sub_folders(my_path):
    """return all file in my_path root and sub-directories
Not just file names but their path too.
"""
    #getting file from this dorectory
    file_list = get_all_files_from(my_path)
    sub_folder_list = get_all_folders_from(my_path)

    for i, _file_name in enumerate(file_list):
        file_list[i] = join(my_path,file_list[i])

    for folder_name in sub_folder_list:
        return_list = get_all_files_from_folder_and_sub_folders(join(my_path,folder_name))
        file_list.extend(return_list)
    return file_list

os.rename(file_name_with_path, join(file_name_splitted[0], tag+file_name_splitted[1]))

有任何想法嗎? 謝謝

這可能是由許多原因引起的,但是我的猜測是,當您從文件夾復制所有文件時,您還復制了包含桌面配置的Desktop.ini文件。

這樣,您已經覆蓋了以前的文件夾配置(包括文件夾的圖標)

嘗試做這樣的事情:

def get_all_files_from(my_path):
    """return all filename in a folder, without their path"""
    file_list_without_path = [ f for f in listdir(my_path) if isfile(join(my_path,f)) and 'Desktop.ini' not in f ]
    return file_list_without_path

有關Desktop.ini更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM