【307】◀▶ Python 相关功能实现
目录:
使用 urllib 模块提供的 urlretrieve() 函数。urlretrieve() 方法直接将远程数据下载到本地。
语法如下所示:
1 2 3 4 5 | urlretrieve (url, filename = None , reporthook = None , data = None ) 参数 finename 指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。) 参数 reporthook 是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度。 参数 data 指 post 到服务器的数据,该方法返回一个包含两个元素的(filename, headers)元组,filename 表示保存到本地的路径,header 表示服务器的响应头。 |
以下代码实现批量下载图片到指定的文件夹:
1 2 3 4 5 6 7 8 9 | import os import urllib # 设置工作空间 os.chdir(r "D:\tmp" ) for i in range ( 170 , 170 ): url = "http://www.100875.com.cn:1314/data/upload/sx7x2012/7x" + str (i + 1 ).zfill( 3 ) + ".jpg" urllib.urlretrieve(url, str (i + 1 ).zfill( 3 ) + ".jpg" ) |
参考:Python 简单爬虫程序 以及 urllib.urlretrieve()方法 改变文件存放文件位置
在进行 ArcPy 代码处理的时候,如果 shp 文件的文件名中存在点“.”会报错,例如这样的文件名 union2018.04.11.shp,因此需要将里面的点去掉,或者替换为下划线“_”,如下的代码预设条件为,根目录下有 N 个文件夹,每一个文件夹中有 N 个 shp 文件,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # 文件夹套文件夹的形式,此为根目录 rootdir = r "D:\01-Working\2018\20180411-HAD_FREQ\2017shp" # 获取子文件夹 folders = os.listdir(rootdir) # 遍历子文件夹里面的文件重命名 for folder in folders: fs = os.listdir(os.path.join(rootdir, folder)) for f in fs: file_ext = os.path.splitext(f) # 纯文件名 f_name = file_ext[ 0 ] # 扩展名,前面带点 f_ext = file_ext[ 1 ] # 如果文件名中存在点,则将其替换为下划线重命名 if f_name.find( "." ) > 0 : path_new = f_name.replace( "." , "_" ) + f_ext os.rename(os.path.join(rootdir, folder, f), os.path.join(rootdir, folder, path_new)) |
说明:通过 os.path.splitext() 函数可以将文件名和扩展名分开,这样在处理文件名的点的问题就不会受到扩展名的影响了。
正常情况下 Python 脚本执行后会消失,为了让脚本暂停而不是立即消失,可以在脚本末尾添加如下代码:
1 2 | import os os.system( "pause" ) |
A
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
2016-04-08 【201】SeaDAS代码
2013-04-08 【115】StrokeIt相关操作
2012-04-08 【030】◀▶ ArcEngine 一些实现代码