以下是我在bash中使用的工作代码:
inputDir='bla/bla/RNAseq/fastq/original/test'
for trimFile in $inputDir/*".1.trimmed"
do
filenumtwo=`basename -s .1.trimmed "$trimFile"`
/bla/bla/softwares/SolexaQA++_v3.0/Linux_x64/SolexaQA++ lengthsort -l 20 -c $trimFile $inputDir/$filenumtwo.2.trimmed
done
正如您所看到的,我能够专门循环文件夹中仅以.1.trimmed结尾的文件,剪切扩展并将结果存储在新变量中,并使用该变量并简单地添加.2。修剪它,所以我把那些配对的文件作为参数。
我想用python做到这一点,但它不起作用。我尝试过使用set,定义一个类,或者只是使用trimFile.endswith(" 1.trimmed"),但它不起作用。我很遗憾,我很遗憾。
这是我在python中的最新尝试......我已经完成了许多不同的循环配置:
solexa = "/bla/bla/softwares/SolexaQA++_v3.0/Linux_x64/SolexaQA++"
clipped = "/bla/bla/RNAseq/fastq/test/clipped/"
for trimFile in os.listdir("."):
if trimFile.endswith("1.trimmed"):
print "Clipping with SolexaQA++"
command = [solexa,"lengthsort","-l","20","-c",trimFile,trimFile.endswith("2.trimmed"),"-d",clipped]
subprocess.call(command)
编辑:谢谢,这是对我有用的
for trimFile in glob.glob("*1.trimmed"):
print "Clipping with SolexaQA++"
trimFile2 = trimFile[:-9]
trimFile2 = trimFile2 + '2.trimmed'
command = [solexa,"lengthsort","-l","20","-c",trimFile,trimFile2,"-d",clipped]
subprocess.call(command)
答案 0 :(得分:1)
要获取与特定模式匹配的文件列表,我建议您使用glob。例如,为了找到你想要的东西,你可以这样写:
import glob
for file in glob.glob('*.1.trimmed'):
...