普通人如何用ChatGPT来提高生产力

背景介绍

        在开发中有一份高程数据需要拉取,高程数据存储在服务器上,数据量特别大,大约有70G左右,同事在服务器上部署了一个服务,可以通过url访问到这个服务器上的高程数据,但是这个服务写的不咋好,估计是一个开源的代码,直接部署的。打开是一个文件夹的形式,想要下载到本地,需要一个一个文件点击去下载,极其麻烦,我想了想,这么一个文件一个文件点下去,我可能点一天也点不完。

需求提出

那么我就向ChatGPT提出了要求,我问他能不能给他一堆url,他去请求url下载对应的文件。要求他编写python的脚本。

prompt:

你是一个python程序专家,用python写一个脚本,给你一组url,挨个请求这组url中的每一个,对返回的数据进行下载到本地。


回复:
 

import os
import requests

def download_file(url, save_path):
    """
    下载单个 URL 的内容并保存到本地文件
    """
    try:
        # 使用流式下载,避免一次性加载大文件到内存中
        response = requests.get(url, stream=True, timeout=10)
        response.raise_for_status()  # 若响应状态码不是 200,将抛出异常
        
        with open(save_path, 'wb') as f:
            for chunk in response.iter_content(chunk_size=8192):
                if chunk:  # 过滤掉 keep-alive 的空块
                    f.write(chunk)
        print(f"下载成功:{url} 保存到 {save_path}")
    except requests.RequestException as e:
        print(f"下载失败:{url}\n错误信息:{e}")

def main():
    # 定义链接列表,可以根据需要扩展
    urls = [
        "https://www.example.com/file1.jpg",
        "https://www.example.com/file2.jpg",
        # 在此添加更多链接
    ]
    
    # 定义保存下载文件的目录,若目录不存在则创建
    output_dir = "downloads"
    os.makedirs(output_dir, exist_ok=True)
    
    # 遍历链接列表,依次下载
    for url in urls:
        # 简单使用 URL 的最后一部分作为文件名,
        # 若 URL 以 "/" 结尾则默认命名为 "index.html"
        file_name = url.rstrip('/').split("/")[-1]
        if not file_name:
            file_name = "index.html"
        
        save_path = os.path.join(output_dir, file_name)
        download_file(url, save_path)

if __name__ == "__main__":
    main()

代码说明

  1. download_file 函数

    • 使用 requests.getstream=True 参数进行流式下载,适用于大文件下载。
    • 使用 response.iter_content 分块写入到本地文件,防止内存占用过高。
    • 捕获异常,保证单个链接下载失败时不会影响后续链接的处理。
  2. main 函数

    • 定义一个链接列表 urls,可以根据实际情况从文件或其他数据源读取。
    • 检查并创建用于保存下载内容的目录。
    • 对每个 URL,简单地将其最后一部分作为文件名(如果 URL 以斜杠结尾,则默认使用 index.html)。
  3. 运行入口

    • 通过 if __name__ == "__main__": 语句保证脚本直接运行时执行 main 函数。

这个脚本适合对少量链接进行顺序下载。如果需要批量、并发下载,建议使用 requests.Session 或借助 concurrent.futures 等工具进行并发处理,并适当加入重试机制和日志记录,以提高健壮性和性能。

运行代码

        我将代码copy到我的编译器中,先拿一个url试试他生成的代码能不能用吧,于是就从浏览器中粘贴出来一个url,试了试,下载的非常完美。

那么现在问题来了,我还有这一组url,需要一个一个的去输入,可能又需要花费5-10分钟的时间。于是我又向GPT提出了需求,我通过F12抓取到url的返回内容,将这一大坨字符串直接复制给ChatGPT,让他来帮我梳理出来所有的url。于是他在30s内就给出了我答案。

prompt:

根据这个格式生成url
http://192.168.4.26:8080/utm/上海.tif
- 你不需要生成py代码,只需要最终的url结果
- url使用双引号引起来,中间用逗号分隔
下面是给定的数据:
云南.tif4.3 GB

4.3 GB	2025-01-20 08:51:08 +08:00 3 weeks ago
内蒙古-wgs84.tif4.3 GB

4.3 GB	2024-05-15 15:04:53 +08:00 9 months ago
内蒙古.tif2.3 GB

2.3 GB	2023-06-12 17:58:20 +08:00 2 years ago
北京.tif131.8 MB

131.8 MB	2023-06-12 17:19:16 +08:00 2 years ago
台湾.tif389.5 MB

389.5 MB	2023-06-12 18:01:08 +08:00 2 years ago
吉林.tif1.2 GB

1.2 GB	2023-06-12 17:44:16 +08:00 2 years ago
四川.tif5.2 GB

5.2 GB	2023-06-12 18:23:22 +08:00 2 years ago
天津.tif3.6 MB
......

回复:

然后我复制这一组url到代码中,然后运行,之后就不用管了。

他自动的把我所有需要的文件自动下载到了一个文件夹下。真是太好用啦。

思考

        在这场大语言模型的浪潮中,普通程序员如何提升效率,从日常工作中的每一件小事来的,如果我只是按部就班的打开url,一个个点击下载,可能永远也得不到提升,我永远都只是个搬砖的。而我们更多思考的应该是如何使用工具来提升我们的生产效率。这样我们才不至于在这个浪潮中被拍死到沙滩上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值