实例

1.批量删除文件夹内所有.java后缀名的文件

import os
	
	dir1 = r'G:\github\CmProject\app\src\main\aidl\android\content\pm'
	
	
	def delete_files(dir):
	    for f in os.listdir(dir):
	        file = os.path.join(dir, f)
	        if os.path.isdir(file):
	            delete_files(file)
	        elif os.path.isfile(file):
	            if os.path.splitext(file)[1] == '.java':
	                print('remove %s' % file)
	                os.remove(file)
	
	
	delete_files(dir1)

2.批量下载一个文件夹下的所有文本文件中的图片
项目中突然有这样一个需求,要把接口数据做成离线的,这时得先把正常的接口返回的数据保存成一个个的.json文件保存到本地,然后接口返回的数据里的图片也要做一份离线的,以防设备无网络时加载不到,这时如果接口很多,离线文件就会很多,那么要把离线文件里的一个个图片url都下载成图片保存到本地,可以把离线文件用文本编辑器打开,然后一个一个的把图片url复制到浏览器里打开,右键另存为,但是这种操作的效率是无法让人忍受的,脚本搞之:

	import os
	import re
	import urllib.request
	import socket
	from time import sleep
	
	file_path = r'E:\android\code\HmUitls\netutils\src\main\assets'
	img_path = r'E:\android\code\HmUitls\netutils\src\main\assets\img'
	
	
	# http://zj-drs.tvos.wasu.cn/pds//image/2018/5/11170231580history_bg.png


	def init():
	    global count
	    global error_img_list
	    count = 0
	    error_img_list = []
	    socket.setdefaulttimeout(2)  # 设置超时时间为2秒
	    if not os.path.exists(img_path):  # 判断要用来保存图片的文件夹是否存在,不存在就创建
	        os.makedirs(img_path)
	    get_json_file(file_path)
	
	
	def get_json_file(file_path):
	    global count
	    for f in os.listdir(file_path):  # 遍历获取目标文件夹下的文件
	        file = os.path.join(file_path, f)
	        if os.path.isfile(file) and os.path.splitext(f)[1] == '.json':  # 如果是文件且是.json格式的文件
	            print(file)
	            get_img_url(file)
	
	    print('共有%d 张图片,下载失败%d张' % (count, len(error_img_list)))
	
	
	def get_img_url(file):
	    global count
	    # file = r'E:\android\code\HmUitls\netutils\src\main\assets\tab5a625bqt5Lit5b+D.json'
	    with open(file, 'r', encoding='UTF-8') as f:
	        finditer = getRex().finditer(f.read())  # 正则匹配文中图片地址
	        for iter in finditer:
	            print('url: %s       fileName: %s' % (iter.group(0), iter.group(1)))
	            count = count + 1
	            downloadpic(iter.group(0), os.path.join(img_path, iter.group(1)))
	            sleep(0.2)
	
	
	def getRex():
	    rehttp = re.compile(r'http://zj-drs.+?/(\w+\.[jpgn]{3})')
	    return rehttp
	
	
	def downloadpic(img_url, file_name):
	    global error_img_list
	    try:
	        urllib.request.urlretrieve(img_url, filename=file_name)  # 下载图片
	        print('第 %d 张图片下载成功!' % count)
	    except Exception as e:
	        print('第 %d 张图片下载失败!' % count)
	        error_img_list.append(img_url)
	        print('download error:', e)
	
	
	if __name__ == "__main__":
	    init()

你可能感兴趣的:(Python)