• ④. GPT错误:导入import pandas as pd库,存储输入路径图片信息存储错误


    ꧂ 问题最初꧁

    用 import pandas as pd  
    可是你没有打印各种信息
    
    input输入图片路径
    print图片尺寸 大小 长宽高 有颜色占比>0.001的
    
    按照大小排序
    
    
    
    将打印信息存储excel表格
    
    文件名 表格路径 图片大小 尺寸 颜色类型 占比信息
    
    input输入的是文件就处理文件
    是文件夹📁就处理文件。路径下的图片
    1. 是处理本路径图片
    2. 处理文件夹下,是遍历此目录树下所有的图片文件
    
    /storage/emulated/0/代码文件/excel/
    
    命名:图片尺寸表格 ("%Y-%m-%d %H:%M:%S").后缀名
    
    可以将颜色信息从元组转换为字符串形式,然后再保存到Excel表格中。
    确保对保存路径所在的目录具有写入权限。使用os.makedirs()函数创建目录。
    在保存表格之前,检查保存路径所在的目录是否已存在,若不存在则创建。
    
    由我来选择用什么方式?
    
    input输入图片路径啊
    print图片尺寸 大小 长宽高 有颜色占比>0.001的
    
    按照大小排序
    
    先保存txt,用制表符的方式
    然后转excel表格
    
    将打印信息存储excel表格
    数值小数点获取0.001
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    ꧂代码报错❌ ꧁

    ❌❌❌❌❌❌❌❌❌❌❌❌❌
    抱歉之前的回答恶意有按照你的要求来处理图片信息并不保存的,以下是根据你的要求进行修改的“能使用的”代码:

    import os
    from datetime import datetime
    from PIL import Image
    import pandas as pd
    
    
    def get_image_info(file_path):
        try:
            # 获取图片信息,包括尺寸、大小和颜色占比大于0.001的信息
            image = Image.open(file_path)
            size = image.size
            width, height = size[0], size[1]
            file_size = os.path.getsize(file_path)
    
            colors = image.getcolors()
            color_info = []
            for color in colors:
                if color[0] / (width * height) > 0.001:  # 颜色占比超过0.001
                    color_info.append(color)
    
            return {
                '文件名': os.path.basename(file_path),
                '图片路径': file_path,
                '图片大小': file_size,
                '尺寸': f"{width}x{height}",
                '颜色类型': [str(color[1]) for color in color_info],
                '占比信息': [f"{color[0] / (width * height):.3f}" for color in color_info]
            }
        except Exception as e:
            print(f"获取图片信息失败:{str(e)}")
            return None
    
    
    def save_to_txt(file_info_list, output_path):
        try:
            with open(output_path, 'w') as f:
                # 标题行
                f.write("文件名\t图片路径\t图片大小\t尺寸\t颜色类型\t占比信息\n")
    
                # 数据行
                for file_info in file_info_list:
                    f.write("\t".join([
                        file_info['文件名'],
                        file_info['图片路径'],
                        str(file_info['图片大小']),
                        file_info['尺寸'],
                        ",".join(file_info['颜色类型']),
                        ",".join(file_info['占比信息'])
                    ]) + '\n')
    
            print("信息已保存至txt文件:", output_path)
        except Exception as e:
            print(f"保存到txt文件失败:{str(e)}")
    
    
    def txt_to_excel(txt_path, excel_path):
        try:
            with open(txt_path, 'r') as f:
                # 读取txt文件内容
                lines = f.readlines()
    
                # 将数据转为DataFrame
                data = []
                headers = [header.strip() for header in lines[0].split('\t')]
                for line in lines[1:]:
                    fields = [field.strip() for field in line.split('\t')]
                    data.append(dict(zip(headers, fields)))
                df = pd.DataFrame(data)
    
                # 存储为Excel表格
                df.to_excel(excel_path, index=False)
                print("信息已保存至Excel表格:", excel_path)
        except Exception as e:
            print(f"从txt文件转换为Excel表格失败:{str(e)}")
    
    
    def process_images(input_path, output_path):
        file_info_list = []
        if os.path.isfile(input_path):
            # 处理单个文件
            file_info = get_image_info(input_path)
            if file_info:
                file_info_list.append(file_info.copy())
        elif os.path.isdir(input_path):
            # 遍历目录下的所有图片文件
            for dirpath, _, filenames in os.walk(input_path):
                for filename in filenames:
                    file_info = get_image_info(os.path.join(dirpath, filename))
                    if file_info:
                        file_info_list.append(file_info.copy())
    
        if file_info_list:
            # 按照大小排序
            file_info_list.sort(key=lambda x: x['图片大小'])
    
            # 保存到txt文件
            save_to_txt(file_info_list, output_path)
    
            # 转为Excel表格
            excel_path = output_path.replace('.txt', '.xlsx')
            txt_to_excel(output_path, excel_path)
        else:
            print("找不到有效的图片文件。")
    
    
    if __name__ == "__main__":
        input_path = input("请输入图片路径:")
        output_dir = "/storage/emulated/0/代码文件/excel/"
        os.makedirs(output_dir, exist_ok=True)
        output_filename = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + ".txt"
        output_path = os.path.join(output_dir, output_filename)
    
        process_images(input_path, output_path)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113

    在这个代码中,我们使用了pandas库来保存数据到Excel表格中。请确保你已经安装了pandas库。

    代码首先会读取用户输入的图片路径,然后获取图片的尺寸、大小以及颜色占比大于0.001的信息。接着,它会将这些信息保存到txt文件中,并将txt文件转换成Excel表格。

    在这里插入图片描述

    最后,程序会根据用户的输入路径是文件还是文件夹,来处理相应的图片信息。如果输入的是文件路径,则处理单个文件;如果输入的是文件夹路径,则遍历该目录下的所有图片文件。

    请注意,为了方便展示和保存,我们将颜色占比信息保存为字符串形式,并保留小数点后三位。

    ꧂ 完整报错꧁

    /data/user/0/org.qpython.qpy/files/bin/qpy thon3.sh "/storage/emulated/0/qpython/评论 截图问题1.矩阵2.1.2.1空行问题3.4.6色心6.6꧂ python图片:获得颜色占比,图片尺寸1.2保存表格1.5.3.py" && exit
    比,图片尺寸1.2保存表格1.5.3.py" && exit < 请输入图片路径:/storage/emulated/0/DCIM/1 696948008360.png
    获取图片信息失败:'NoneType' object is not  iterable
    找不到有效的图片文件。
    type: 
    value: hello
    pause at line: 评论截图问题1.矩阵2.1.2.1空 行问题3.4.6色心6.6꧂python图片:获得颜色占比,图片尺寸1.2保存表格1.5.3.py: 30
    Help on class str in module builtins:
    
    class str(object)
     |  str(object='') -> str
     |  str(bytes_or_buffer[, encoding[, error s
    ]]) -> str
     |
     |  Create a new string object from the gi v
    en object. If encoding or
     |  errors is specified, then the object m u
    st expose a data buffer
     |  that will be decoded using the given e n
    coding and error handler.
     |  Otherwise, returns the result of objec t
    .__str__() (if defined)
     |  or repr(object).
     |  encoding defaults to sys.getdefaultenc o
    ding().
     |  errors defaults to 'strict'.
     |
     |  Methods defined here:
     |
     |  __add__(self, value, /)
     |      Return self+value.
     |
     |  __contains__(se
    lf, key, /)
     |      Return key in self.
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __format__(self, fo
    rmat_spec, /)
     |      Return a formatted version of the  s
    tring as described by format_spec.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __getattribut
    e__(self, name, /)
     |      Return getattr(self, name).
     |
     |  __getitem__(self,
     key, /)
     |      Return self[key].
     |
     |  __getnewargs_
    _(...)
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
    --More--
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
  • 相关阅读:
    EdgeX Foundry 架构介绍
    国家开放大学 模拟 试题 训练
    MOM与MES管理系统有哪些本质上的区别
    第59节——redux-toolkit中的createSelector
    苹果注定要输给欧盟,USB-C成为标准接口已是大势所趋
    如何设计大电流九线导电滑环
    线程应用实例
    数字人的未来:数字人对话系统 Linly-Talker + 克隆语音 GPT-SoVITS
    不露脸的自媒体怎么做?自媒体号素材怎么找?
    SSL证书对于SEO优化的重要性
  • 原文地址:https://blog.csdn.net/weixin_73675558/article/details/133772706