python遍历文件目录、批量处理同类文件


Posted in Python onAugust 31, 2019

本文实例为大家分享了python遍历文件目录、批量处理同类文件的具体代码,供大家参考,具体内容如下

目录操作

1、获取当前目录

import os
curr_path=os.path.dirname(__file__) #返回当前文件所在的目录,即当前运行的脚本所在父目录
print curr_path

运行示例

python遍历文件目录、批量处理同类文件

(1)使用os.path.dirname(__file__)时,是针对运行时对所给程序脚本的路径来获取父目录的,即截取你输入的脚本路径的所在目录名称,如上图示例,输入绝对路径时返回绝对路径,输入相对路径时返回相对路径,如果只输入了脚本名称,则返回空。

注:当从命令行中进入python环境时时,参数__file__不能使用)

(2)当直接使用os.path.dirname(“/home/test_MK/test.py”)时,直接返回“/home/test_MK”

2、获取目录文件列表

file_list=os.listdir("/home/test_MK/test")) 
print file_list

运行示例

python遍历文件目录、批量处理同类文件python遍历文件目录、批量处理同类文件

3、获取该目录下文件夹或者文件列表

path="/home/test_MK/test"
objects=os.listdir(path)
dir_list=[] #存放目录列表
file_list=[] #存放文件列表
for obj in objects:
 if os.path.isdir(os.path.join(path, obj)):#判断是否是目录os.path.join()用来将路径拼接
 dir_list.append(os.path.join(path, obj))#保存时保存完整路径才能对其进行后续操作
 print "dir:",obj
 else:
 file_list.append(os.path.join(path, obj))
 print "file:",obj
print "目录列表:",dir_list
print "文件列表:",file_list
#如果项判断是否是文件时用os.isfile()

(注:使用os.isdir()与os.isfile()时,参数必须是一个相对路径或者绝对路径,不能光是一个文件名或者目录名称,这也是上面示例代码中使用os.path.join()的原因,否则函数将判断不出正确结果)

运行示例

python遍历文件目录、批量处理同类文件

批量处理目录下同类文件

以处理pcap文件为例

1、获取某一文件夹下所有pcap包路径,过滤掉其它文件

def getPathFile(path):
 '''
 name:getPathFile
 function:获取所给文件夹下所有pcap文件路径
 path:所给文件夹路径
 '''
 Path = []
 try:
 pathDir = os.listdir(path)
 for allDir in pathDir:
  child = os.path.join('%s/%s' % (path, allDir))
  #跳过文件夹以及非流量包文件,将后缀名改为自己需要的文件类型即可实现自己的过滤
  if os.path.isfile(child) and (".pcap" in str(allDir) or (".cap" in str(allDir))): 
  Path.append(child)
 except:
 pass
 return Path

2、处理函数,打印一个pcap文件中所有数据包的五元组信息{src_ip,src_port,dst_ip,dst_port}

def print_pack_f(file_path):
 '''
 name:print_pack_f
 function:打印一个pcap文件中所有数据包的五元组信息
 file_path:所给pcap文件路径
 '''
 file_p= open(file_path)
 pcap = dpkt.pcap.Reader(file_p) 
 if not pcap:
 return
 print "\n\n*******file:%s*******\n"% file_path
 for (ts,buf) in pcap:
 try:
 eth = dpkt.ethernet.Ethernet(buf) #解包,物理层
 if not isinstance(eth.data, dpkt.ip.IP): #解包,网络层
 continue
 ip = eth.data
 src_ip="%d.%d.%d.%d"%tuple(map(ord,list(ip.src))) 
 dst_ip="%d.%d.%d.%d"%tuple(map(ord,list(ip.dst)))
 if (not isinstance(ip.data, dpkt.tcp.TCP)) and (not isinstance(ip.data, dpkt.udp.UDP)): #解包,传输层
 continue
 transf= ip.data
 print "<",src_ip,":",transf.sport,"-->",dst_ip,":",transf.dport,">"
 except Exception,err:
 print "[error] %s" % err

3、调用示例

def main(dir_path):
 all_file_path=getPathFile(dir_path) #获取目录下所有pcap文件路径
 for file in all_file_path: #遍历处理
 print_pack_f(file) #单个pcap文件处理,可将本函数替换成自定义的功能,便可实现批量处理

if __name__ == '__main__':
 opts,args = getopt.getopt(sys.argv[1:], "hi:") #从命令行获取参数
 if not opts: #若没有带参数
 print "\n\
 *******************\n\
 warn! please enter related parameters,enter -h for help!\n\n\
 *******************\n"
 sys.exit()
 input_path=''
 for op, value in opts:
 if op == "-i":
 input_path = value
 elif op == "-h":
 usage() #帮助信息,只是简单的一个输出函数,输出内容自定义
 sys.exit()
 main(input_path)

结果展示

测试目录如下

python遍历文件目录、批量处理同类文件

运行结果(python test.py -i ./test)

python遍历文件目录、批量处理同类文件

完毕

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现批量获取指定文件夹下的所有文件的厂商信息
Sep 28 Python
归纳整理Python中的控制流语句的知识点
Apr 14 Python
举例讲解Python中的死锁、可重入锁和互斥锁
Nov 05 Python
使用Python从有道词典网页获取单词翻译
Jul 03 Python
用python写个自动SSH登录远程服务器的小工具(实例)
Jun 17 Python
Django rest framework基本介绍与代码示例
Jan 26 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
Jul 16 Python
python xpath获取页面注释的方法
Jan 14 Python
Python实现线性判别分析(LDA)的MATLAB方式
Dec 09 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
Apr 22 Python
python Django 反向访问器的外键冲突解决
May 20 Python
Python实现ElGamal加密算法的示例代码
Jun 19 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
Aug 31 #Python
python批量处理文件或文件夹
Jul 28 #Python
在pycharm中显示python画的图方法
Aug 31 #Python
关于django 1.10 CSRF验证失败的解决方法
Aug 31 #Python
详解python中的模块及包导入
Aug 30 #Python
详解Python self 参数
Aug 30 #Python
Python 70行代码实现简单算式计算器解析
Aug 30 #Python
You might like
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
2015/09/14 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
2017/02/15 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
一个简单的全屏图片上下打开显示网页效果示例
2014/07/08 Javascript
JavaScript字符串常用类使用方法汇总
2015/04/14 Javascript
原生JS轮播图插件
2017/02/09 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
各种选择框jQuery的选中方法(实例讲解)
2017/06/27 jQuery
bootstrap table支持高度百分比的实例代码
2018/02/28 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
使用express来代理服务的方法
2019/06/21 Javascript
Node.js API详解之 querystring用法实例分析
2020/04/29 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
[02:47]2018年度DOTA2最佳辅助位选手4号位-完美盛典
2018/12/17 DOTA
Python实现按特定格式对文件进行读写的方法示例
2017/11/30 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
python pandas修改列属性的方法详解
2018/06/09 Python
python消除序列的重复值并保持顺序不变的实例
2018/11/08 Python
python flask框架实现重定向功能示例
2019/07/02 Python
pytorch中tensor张量数据类型的转化方式
2019/12/31 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
浅析Python模块之间的相互引用问题
2021/02/26 Python
实现CSS3中的border-radius(边框圆角)示例代码
2013/07/19 HTML / CSS
实列教程 一款基于jquery和css3的响应式二级导航菜单
2014/11/13 HTML / CSS
简单几步用纯CSS3实现3D翻转效果
2019/01/17 HTML / CSS
美国CVS药店官网:CVS Pharmacy
2018/07/26 全球购物
俄罗斯购买剧院和演唱会门票网站:Parter.ru
2019/11/09 全球购物
PPP协议组成及简述协议协商的基本过程
2015/05/28 面试题
财务总监岗位职责
2014/03/07 职场文书
爱情保证书大全
2014/04/29 职场文书
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
婚育证明样本
2015/06/16 职场文书
Java使用Unsafe类的示例详解
2021/09/25 Java/Android
Python Pandas解析读写 CSV 文件
2022/04/11 Python
微信小程序调用python模型
2022/04/21 Python
Python使用DFA算法过滤内容敏感词
2022/04/22 Python