【问题标题】:How to fix this python %s placeholder arrangement如何修复此 python %s 占位符排列
【发布时间】:2019-11-03 18:26:28
【问题描述】:

我需要遍历输入文件对,R1R2,它们将一起处理并且每个都附加一个“.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 对。感谢您的帮助!

【问题讨论】:

  • 我认为你在脚本的最后一行有一个非打印字符。
  • 为什么您认为问题与%s 占位符有关?错误消息说它在第 7 行,但占位符在第 6 行。
  • 通常 Python 会显示一个指向语法错误的指针 ^。这真的是整个错误信息吗?
  • 感谢您的快速回复!我愚蠢地遗漏了一个未被注意到的括号。

标签: python placeholder


【解决方案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")))

您只需要添加结束括号,您应该不再遇到该语法错误。

【讨论】:

  • 不要发布错字问题的真实答案,只需发表评论即可。答案会减慢删除不良问题的吸尘器速度。
【解决方案2】:

我不会尝试使用 %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"))

【讨论】:

  • 感谢您的替代方案。这将是很好的练习!
猜你喜欢
  • 2013-07-20
  • 1970-01-01
  • 2015-05-13
  • 1970-01-01
  • 2015-08-07
  • 2017-10-25
  • 2021-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多