当前位置: 首页 > java >正文

在python中获取符合特定模式的文件

在shell中,访问文件目录(文件夹)以及文件是很简单的,所以我们可以使用正则表达式,再加上for循环轻松的对某个文件夹下的通配格式文件进行处理,比如说是当前文件夹下的fq格式文件进行trim_galore或者是fastp,

比如说是格式如下:
 

for each_fq in *.fq;doyour_command_in_linuxdone

那么在python中,如果我们也想要做同样的事情以及任务,我们应该怎么做?

举个非常简单的例子,比如说我想要获取Q1文件夹下的所有txt文件,进行统一的处理,我该如何将文件路径收集到1个比如说是list列表中?

1,法1:使用glob模块        

import glob
Q1_dir = "/data1/project/omics_final/Q1"
txt_files = glob.glob(f"{Q1_dir}/*.txt")
print(txt_files)

效果如下:

然后再接着我们就可以使用简单的for循环,在对应的list迭代器中进行循环处理每一个变量文件了;

for txt_file in txt_files:print(f"处理文件: {txt_file}")try:your_python_code_hereexcept Exception as e:error 处理

2,法2:使用pathlib模块

from pathlib import PathQ1_dir = Path("/data1/project/omics_final/Q1")txt_files = list(Q1_dir.glob("*.txt"))print(txt_files)    for each_file in txt_files:print(f"处理文件: {each_file}")print(f"文件名: {str(each_file)}")print( each_file == str(each_file))

主要是细节上注意一下path对象和str转换:

3,法3:使用os模块

主要是使用endwith的字符串处理函数,另外listdir其实无法返回绝对路径,得配合f string,或者join函数

import osQ1_dir = "/data1/project/omics_final/Q1"all_files = os.listdir(Q1_dir)txt_files = [f for f in all_files if f.endswith('.txt')]print(txt_files)for txt_file in txt_files:print(f"{Q1_dir}/{txt_file} == {os.path.join(Q1_dir, txt_file)}")

http://www.xdnf.cn/news/14007.html

相关文章:

  • 《Java开发工具全解析:从基础到前沿》
  • MySQL数据库死锁全解析:发生场景、定位方法、解决方案及最佳实践
  • 京东率先开启“3D信息流时代” 让购物更有趣
  • TortoiseSVN 下载指定版本客户端及对应翻译(汉化)包
  • ABP vNext + OpenIddict:自定义 OAuth2/OpenID Connect 认证策略
  • 搭建前端项目 Vue+element UI引入 步骤 (超详细)
  • 2025年第二届仿真与电子技术国际学术会议(ICSET 2025)
  • 用 PlatformIO + ESP-IDF 框架开发 ESP32
  • OB Cloud × 海牙湾:打造高效灵活的金融科技 AI 数字化解决方案
  • 安科瑞中小工商业储能监测-能量管理系统Acrel-2000ES
  • SAP 生产订单报工检查报错异常(接口)
  • 智能客服不再冰冷,声网AI为品牌构建情绪接口
  • 仪表刻度动态显示控件--小三角指针
  • 语言模型进化论:从“健忘侦探”到“超级大脑”的破案之旅
  • MQTT协议
  • 使用Word2Vec实现中文文本分类
  • [深度学习]卷积神经网络
  • 【王阳明代数集合论基础】情感分析之句子的基本结构
  • MiniMind(1)Tokenizer与训练数据
  • 从Pura 80系列影像和鸿蒙AI融合看华为创新的“不可复制性”
  • [Rviz2报错,已解决!]导入urdf模型错误:Could not load mesh resource 。。。
  • 【Vue PDF】Vue PDF 组件初始不加载 pdfUrl 问题分析与修复
  • 【图像恢复算法】 ESRGAN Real-ESRGAN的配置和应用
  • SSE详解
  • 前端跨域解决方案(1):什么是跨域?
  • 【Bluedroid】蓝牙启动之 GAP_Init 流程源码解析
  • 国际数字影像产业园:数字技术赋能 引领产业升级变革
  • 自动化基础随心记三-zabbix
  • AI 重构代码实战:如何用飞算 JavaAI 快速升级遗留系统?
  • python编程基础