【问题标题】:Convert folder name into key and inside folder images convert into array将文件夹名称转换为密钥,并将文件夹内部图像转换为数组
【发布时间】:2020-11-18 06:40:21
【问题描述】:

我正在编写一个脚本来将文件夹的名称转换为字典键,并且每个文件夹中的图像内部将是每个键的数组值。我怎样才能实现它?

示例 安吉丽娜是文件夹名称,在她的文件夹内有属于她的图像。然后,此过程对所有文件夹保持相同。

idendities = {
    "Angelina": ["img1.jpg", "img2.jpg", "img4.jpg", "img5.jpg", "img6.jpg", "img7.jpg", "img10.jpg", "img11.jpg"],
    "Scarlett": ["img8.jpg", "img9.jpg", "img47.jpg", "img48.jpg", "img49.jpg", "img50.jpg", "img51.jpg"]}

【问题讨论】:

    标签: arrays python-3.x dictionary python-3.6


    【解决方案1】:

    你可以这样做 -

    import os
    
    key_value_map = {}
    
    # Change root with your root directory name
    root = 'test'
    
    dir_list = os.listdir(root)
    
    for dir in dir_list:
        files_list = os.listdir(os.path.join(root, dir))
        jpg_files = []
    
        for f in files_list:
            if f.endswith(".jpg"):
                jpg_files.append(f)
    
        key_value_map[dir] = jpg_files
    
    
    print(key_value_map)
    

    假设您的工作目录中有两个目录,即 Angelina 和 Scarlet。

    【讨论】:

    • 实际上,有 1000 个不同名人的文件夹,我无法输入所有文件夹的名称。有没有办法将文件夹名称转换为字典键?
    • 你不需要。 os.listdir() 方法将为您执行此操作。假设您有一个名为“root”的根文件夹,其中包含所有这些名人文件夹。现在,如果根文件夹在您的工作目录中,您所要做的就是调用 os.listdir('root')。它应该返回名人目录列表。如果根文件夹位于其他位置,您也可以使用根文件夹的绝对路径。所以,如果你遵循这一点,你所要做的就是在我的代码中更改一行: dir_list = os.listdir('ROOT_DIR_PATH') 其余的应该是一样的。
    • 请告诉文件夹和图像存在于此目录中,但它给出错误 FileNotFoundError: [Errno 2] No such file or directory: 'TheodoreRoosevelt'
    • 那是因为,子目录没有链接到根路径。我对sn-p做了一点改动,请尝试使用它。将root 变量的值替换为您放置所有名人目录的目录名称/路径。它应该做的工作。但请记住,它只会返回 jpg 文件名。如果您需要访问这些文件,您应该使用相对于根目录的os.path.join()
    • 我需要更多帮助。我希望当一个键值对结束时,第二个键值对从下一行开始,因为现在我收到错误但条件不好
    猜你喜欢
    • 2020-06-09
    • 2022-11-10
    • 2019-10-22
    • 2021-06-11
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多