擅长:python、mysql、java
<p>在循环的一次迭代中,只能定义<code>ID_1</code>和<code>ID_2</code>中的一个,因为它一次只查看一个文件,并且这两个条件是互斥的</p>
<p>这个问题有两个简单的解决方案:您可以给出<code>ID_1</code>和<code>ID_2</code>默认值,或者您可以在检查它们是否相同之前添加另一个条件(例如,“如果两个ID都定义了<em>和</em>,那么它们是相同的”)</p>
<p>但是,这可能无法使程序正常工作,因为<code>os.listdir</code>可能会以与预期不同的顺序列出文件</p>
<p>最简单的解决方案可能是只查看<code>.split.bam</code>文件<em>或</em>文件<code>.bam</code>,然后自己构建另一个文件</p>
<pre><code>import os
for file in os.listdir(path):
# separate the last two file extensions from the base name
basename, *extensions = file.rsplit(os.extsep, 2)
if extensions == ['split', 'bam'] and basename:
# found basename.split.bam
bamfile = basename + '.bam'
if os.path.exists(bamfile):
# use basename, bamfile, and file however you want
subprocess.check_output(...)
</code></pre>
<p>这将查找每个<code>.split.bam</code>文件,并在运行最后一行之前检查相应的<code>.bam</code>文件是否存在</p>