数据集生成方法:Python读取txt文件中的URL路径并下载图片

本文介绍了一个用于从 ImageNet 下载特定类别图片的 Python 脚本。该脚本能够读取指定的文本文件获取图片 URL,并将图片下载到本地指定文件夹。示例展示了如何为鸟类、鱼类等动物类别下载图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.数据来源:

可针对自己的模型需要在imagenet官网上下载所需类别对应的txt文件。

2.数据下载:

import os
from urllib.request import urlretrieve

def download():
    categories = ['bird', 'fish','invertebrate','mammal']  #需要下载图片所对应的txt文件
    for category in categories:
        #将下载到的图片保存在文件夹dataset中
        os.makedirs('./dataset1/%s' % category, exist_ok=True)
        #txt文件所在路径
        with open('./Animal/%s.txt' % category, 'r') as file:
            urls = file.readlines()
            n_urls = len(urls)
            for i, url in enumerate(urls):
                try:
                    urlretrieve(url.strip(), './Animal/%s/%s' % (category, url.strip().split('/')[-1]))
                    print('%s %i/%i' % (category, i, n_urls))
                except:
                    print('%s %i/%i' % (category, i, n_urls), 'no image')

if __name__ == '__main__':
    download()

 

### 使用 Python 和 Pandas 读取 Excel 文件生成 SQL 插入语句 为了实现这一目标,可以利用 `pandas` 库处理 Excel 数据,借助 `SQLAlchemy` 构建数据库连接以及生成相应的 SQL 语句。下面展示了一个完整的流程。 #### 安装必要的库 首先需要确保已经安装了所需的 Python 包: ```bash pip install pandas sqlalchemy openpyxl pymysql ``` 这些命令会安装用于操作 DataFrame 的 `pandas`、构建 ORM 查询的 `SQLAlchemy`、解析 Excel 文件的 `openpyxl` 及 MySQL 驱动程序 `pymysql`[^4]。 #### 加载 Excel 文件到 Pandas DataFrame 中 接下来定义函数加载 Excel 表格中的数据至内存中以便后续处理: ```python import pandas as pd def load_excel_to_df(file_path): """Load an excel file into a dataframe.""" try: data = pd.read_excel(file_path) return data except Exception as e: print(f"Error loading the Excel file: {e}") return None ``` 此部分代码实现了从指定路径读取 Excel 文件的功能,返回一个包含表格内全部记录的数据框对象[^2]。 #### 连接到数据库准备插入操作 建立与目标数据库之间的链接对于执行批量插入至关重要。这里假设要向 MySQL 数据库存储数据,则可以通过如下方式设置 SQLAlchemy 引擎实例: ```python from sqlalchemy import create_engine engine_url = 'mysql+pymysql://username:password@host/database_name' engine = create_engine(engine_url) table_name = "your_table" data.to_sql(name=table_name, con=engine, if_exists='append', index=False) ``` 上述片段展示了如何配置指向特定 RDBMS 实例的 URL 字符串,调用 `to_sql()` 方法将整个 DataFrame 转换成一系列 INSERT INTO 命令发送给服务器端进行持久化存储[^1]。 然而,如果希望手动控制每条记录对应的 SQL 文本格式,则可采用另一种策略——遍历每一行构造字符串形式的 DML 指令集: ```python def generate_insert_statements(dataframe, table_name="employees"): statements = [] columns = ", ".join([f"`{col}`" for col in dataframe.columns]) placeholders = ":" + ", :".join(dataframe.columns) base_query = f"INSERT INTO `{table_name}` ({columns}) VALUES ({placeholders})" for _, row in dataframe.iterrows(): values_dict = dict(row.items()) statement = base_query % values_dict statements.append(statement) return "\n".join(statements) ``` 这段逻辑接收任意结构化的二维数组作为输入参数,迭代访问其中每一个元素拼接成标准语法表述的多行文本输出。注意这里的占位符采用了命名风格以增强可读性和灵活性[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值