汕头网站排名,网站好看的图标代码,专业系统网站好,室内设计快速培训班在shell中#xff0c;访问文件目录#xff08;文件夹#xff09;以及文件是很简单的#xff0c;所以我们可以使用正则表达式#xff0c;再加上for循环轻松的对某个文件夹下的通配格式文件进行处理#xff0c;比如说是当前文件夹下的fq格式文件进行trim_galore或者是fastp…在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/Q1all_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)})