如何修复此python%s占位符排列

时间:2019-06-20 21:51:37

标签: python placeholder

我需要遍历输入文件对 R1 R2 ,它们将一起处理,并分别附加一个“ .trim”文件扩展名。

我对python和glob的了解有限,在使用成对输入但只有一个输出的情况下,它们对于类似任务的效果很好。我完全为为什么它不起作用而感到困惑,尽管我确信这很容易解决。

#!/usr/bin/python
import glob
import os
files = glob.glob("ATAC*R1*.fastq.gz")
for ifile in files:
        os.system("cutadapt -a CTGTCTCTTATACACATCT -A CTGTCTCTTATACACATCT -a AGATGTGTATAAGAGA -o %s.trim -p %s.trim %s %s" % (ifile, ifile.replace("R1","R2"), ifile, ifile.replace("R1","R2"))
Error: 
 line 7

                                                                                                                                                                                            ^
SyntaxError: invalid syntax

这应该如下:

ATAC2-1_R1_.fastq.gz and ATAC2-1_R1_.fastq.gz -> ATAC2-1_R1_.fastq.gz.trim and ATAC2-1_R1_.fastq.gz.trim. 

我要迭代几个R1和R2对。感谢帮助!

2 个答案:

答案 0 :(得分:1)

唯一的问题是您缺少结尾括号:

    os.system("cutadapt -a CTGTCTCTTATACACATCT -A CTGTCTCTTATACACATCT -a AGATGTGTATAAGAGA -o %s.trim -p %s.trim %s %s" % (ifile, ifile.replace("R1","R2"), ifile, ifile.replace("R1","R2")))

您只需要添加结尾括号,就应该停止遇到该语法错误。

答案 1 :(得分:0)

我不会尝试使用%s占位符来执行此操作,而是尝试使用.format(),如下所示:

"cutadapt -a CTGTCTCTTATACACATCT -A CTGTCTCTTATACACATCT -a AGATGTGTATAAGAGA -o {0}.trim -p {1}.trim {2} {3}".format(ifile, ifile.replace("R1","R2"), ifile, ifile.replace("R1","R2"))