python多线程批量过滤文件关键字
基于上一篇博客中的问题,我尝试用python改成多进程运行:https://blog.csdn.net/linxi7/article/details/81317704
#!/usr/bin/env python
import time, datetime
import os, sys, commands
import socket
import threadingOSS_DIR="/data/test"test_name = "t_%s" % time.strftime("%Y%m%d")
test_name_LAST_DAY = "t_%s" % ((datetime.datetime.now() + datetime.timedelta(days=-1)).strftime("%Y%m%d"))
test_name_3_DAY_AGO = "t_%s" % ((datetime.datetime.now() + datetime.timedelta(days=-2)).strftime("%Y%m%d"))
test_name_7_DAY_AGO = "t_%s" % ((datetime.datetime.now() + datetime.timedelta(days=-6)).strftime("%Y%m%d"))
test_name_14_DAY_AGO = "t_%s" % ((datetime.datetime.now() + datetime.timedelta(days=-13)).strftime("%Y%m%d"))
time_of_system = time.strftime("%Y-%m-%d")def exec_commands(cmd):result = commands.getoutput(cmd)return resultdef travel_files(keyword, files, output_file):for single_file in files:file_obj = open(single_file).read().rstrip()for everyline in file_obj.split('\n'):if keyword in everyline:cmd_getid = '''echo "%s" | awk -F'|' '{print $2}' |sort | uniq''' % everylineuserid = exec_commands(cmd_getid)output_file.write(userid + '\n')def get_action(filename, oss_file_name_date, filter_word):register_file = "%s_%s.txt" % (filename, socket.gethostname())if os.path.exists(register_file):file_modify_time = time.strftime("%Y-%m-%d", time.localtime(os.stat(register_file).st_mtime))else:file_modify_time = ''cmd_date = "find %s -type f -name '%s*'" % (OSS_DIR, oss_file_name_date)file_date = exec_commands(cmd_date).split()select_number = 600if file_modify_time != time_of_system:if os.path.exists(register_file):os.remove(register_file)output_file = open(register_file, 'w+')t = threading.Thread(target=travel_files, args=(filter_word, file_date, output_file,))t.start()while threading.active_count() > select_number:time.sleep(1)if __name__ == '__main__':#register 1 day agoget_action("register_file_1_day_ago", test_name_LAST_DAY, "LOGID_ACNT_REGISTER")#register 3 day agoget_action("register_file_3_day_ago", test_name_3_DAY_AGO, "LOGID_ACNT_REGISTER")#register 6 day agoget_action("register_file_7_day_ago", test_name_7_DAY_AGO, "LOGID_ACNT_REGISTER")#register 13 day agoget_action("register_file_14_day_ago", test_name_14_DAY_AGO, "LOGID_ACNT_REGISTER")#login todayget_action("login_file", test_name, "LOGID_ACNT_LOGIN")#logout todayget_action("logout_file", test_name, "LOGID_ACNT_LOGOUT")#register todayget_action("today_register_file", test_name, "LOGID_ACNT_REGISTER")
脚本是查找指定目录下符合时间条件的文件,然后对文件进行批量过滤,采用多线程的方式,能够提升串行执行的时间效果。
python多线程批量过滤文件关键字相关推荐
- python批量下载文件-Python实现批量下载文件
Python实现批量下载文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_a ...
- python批量下载网页文件-Python实现批量下载文件
Python实现批量下载文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_a ...
- python实现批量图片/文件重命名
python实现批量图片/文件重命名 import osclass BatchRename():'''批量重命名文件夹中的图片文件'''def __init__(self):self.path = ' ...
- python多线程写同一个文件_Python多线程快速写入文件,python,飞速
Python多线程快速写入文件,python,飞速 发表时间:2020-07-10 乱序多线程写入 举个最简单的例子,只要求快速写入即可,对顺序无要求时: import threading def w ...
- java多线程批量读取文件(七)
新公司入职一个多月了,至今没有事情可以做,十来个新同事都一样抓狂,所以大家都自己学习一些新东西,我最近在看zookeeper,感觉蛮不错的,和微服务的zuul以及eureka功能类似,只是代码复杂了一 ...
- python实现批量转换文件编码(批转换编码示例)
这篇文章主要介绍了python实现批量转换文件编码示例,指定文件编码.目录或扩展名即可进行转换,大家参考使用吧 # -*- coding:utf-8 -*- __author__ = 'walksky ...
- python 下载文件-Python实现批量下载文件
Python实现批量下载文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_a ...
- python实现批量移动文件到指定文件夹
python实现批量移动文件到指定文件夹 因为前几天在整理数据集文件夹,需要将580多份120个文件移动到新建的文件夹中进行循环读取,也下载了不少软件试用,发现很多都需要会员才能处理大量文件,索性就自 ...
- python中大批量m3u8文件合并总结
python中大批量m3u8文件合并总结 该函数合并,适应于大批量m3u8文本合并m3u8文件 合并m3u8文件函数实现如下 def merge_ts():name_list = []with ope ...
最新文章
- map中的迭代删除操作注意问题
- 软件测试——StringFunction测试
- .pyc文件还原.py文件_Python文件.py转换为.exe可执行程序,制作.exe文件图标
- php mysql 验证码代码_PHP_PHP 验证码的实现代码,checkcode.php 生成验证码图片, - phpStudy...
- 中小型企业无线网络设计
- 简明的wifi通信协议介绍
- php在线编辑cad,cad形文件编辑器下载
- ADF单位根检验三种形式_【EViews】面板数据的处理方法及检验步骤
- 小米air耳机重新配对_小米air耳机重新配对_「小三爷出品」不错的新年礼物,小米蓝牙耳机Air体验...
- JDBC连接hive(错误小结)
- Excel制作动态图表
- 优秀蓝牙耳机推荐,热销不错的四款蓝牙耳机推荐
- APP后期运营小技巧
- 通过Google Earth观看全球夜景地图
- [HDCTF2019]bbbbbbrsa
- python求语音信号短时能量、短时过零率、语谱图
- 编程笔试(解析及代码实现):求和为N的正整数序列之实现一个函数,输入为一个正整数N (比如100),输出为所有和等于N的[连续]正整数序列
- 卡卷特权接口API源码
- Squeezenet中添加OHEM层
- python字典函数大全_python字典介绍