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

news/2024/7/21 3:48:04 标签: python, 青少年编程, 图像处理, excel, 自动化

꧂ 问题最初꧁

用 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

꧂代码报错❌ ꧁

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

python">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)

在这个代码中,我们使用了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: <class 'str'>
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--


http://www.niftyadmin.cn/n/5083337.html

相关文章

【EI会议征稿】第二届可再生能源与电气科技国际学术会议(ICREET 2023)

第二届可再生能源与电气科技国际学术会议(ICREET 2023) 2023 2nd International Conference on Renewable Energy and Electrical Technology 2020年中国可再生能源发电规模显著扩大&#xff0c;风力和太阳能发电均呈迅速增长趋势。中国大力推进能源低碳化&#xff0c;减少温…

从一部iPhone手机看芯片的分类

目录 问题 iPhone X 手机处理器&#xff1a;A11 iPhone X 的两大存储芯片 数字 IC CPU&#xff1a;计算设备的运算核心和控制核心 GPU&#xff1a;图形处理器 ASIC&#xff1a;为解决特定应用问题而定制设计的集成电路 存储芯片&#xff1a;DRAM 和 NAND Flash iPhone…

【vue3】computed计算属性

里面依赖的值只要发生变化&#xff0c;就会触发 import { ref, computed } from vue;let name1 ref(张) let name2 ref(三)/*** 写法一-选项式写法&#xff0c;必须传入get、set函数自定义操作*/ let totalName computed({get(){return name1.value-name2.value},set(newVal…

人大金仓数据库V8 windows下安装

此文为人大金仓数据库安装程序&#xff08;windows下kingbase开发及测试用&#xff09;。 1 人大金仓-成为世界卓越的数据库产品与服务提供商 官方下载安装包&#xff0c;同时需要下载授权文件&#xff0c;补丁文件可以不下。 2 点击安装 3 选择授权文件 4 默认安装即可&…

多目标追踪数据集分享

SportsMOT: A Large Multi-Object Tracking Dataset in Multiple Sports Scenes SportsMOT是一个新的大规模多目标追踪数据集&#xff0c;专注于多样化的体育场景&#xff0c;其中需要跟踪场上的所有运动员。该数据集包括来自篮球、排球和足球等三类体育项目的240个视频序列&am…

SAP内部转移价格(利润中心转移价格)的条件

SAP内部转移价格&#xff08;利润中心转移价格&#xff09; SAP内部转移价格&#xff08;利润中心转移价格&#xff09; SAP内部转移价格&#xff08;利润中心转移价格&#xff09;这个听了很多人说过&#xff0c;但是利润中心转移定价需要具备什么条件。没有找到具体的文档。…

【算法|滑动窗口No.1】leetcode209. 长度最小的子数组

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

yolov8 (2) : 模型训练

yolov8 github: https://github.com/ultralytics/ultralytics yolov8 网络详解参见: YOLOv8 (1) : 网络讲解1. 环境安装 安装ultralytics包pip install ultralytics在终端输入yolo命令࿰