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

时间:2015-08-07 13:52:13

标签: python bash

以下是我在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)

1 个答案:

答案 0 :(得分:1)

要获取与特定模式匹配的文件列表,我建议您使用glob。例如,为了找到你想要的东西,你可以这样写:

import glob
for file in glob.glob('*.1.trimmed'):
    ...