修剪文件名(从bash转换为Python)

2024-05-13 20:10:05 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是我在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.trimmed添加到其中,这样我就可以将这些成对的文件作为参数

我想用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)

Tags: inforcommandfastqrnaseqblainputdirtrimmed