1

ファイル名のリストを含むファイルがあります。

リスト:

Sample1_R1_L1.bam
Sample1_R2_L1.bam
Sample2_R1_L1.bam
Sample2_R2_L1.bam

.......

ファイルの各ペアをマージする UNIX コマンドを実行したい:

$samtools merge Sample1_merged_output.bam Sample1_R1_L1.bam Sample1_R2_L1.bam

ファイル名のリストから2つの要素を取得し、「サブプロセス」を実行してunixコマンドを呼び出すforループをPythonで使用することで、これを達成できると考えていました。一度に2つの要素にアクセスするのに役立つ投稿を見つけましたが、ファイルの名前をUNIXシェルに渡すことができません:

for i,d in enumerate(list):
    if i < (len(list) - 1):
        print d + ' ' + list[i+1]
        # print d + ' ' + list[i+1]

これを達成するための提案は大歓迎です。ありがとう。

4

1 に答える 1

0

argv引数を取得するために使用する必要があります。

from sys import argv
print argv[1]

結果は次のようになります。

merge

次に、コードは次のようになります。

list2merge = argv[2:]
for i,d in enumerate(list2merge):
    print str(i) + ' ' + str(d)

アップデート

list は予約されているため、変数名として使用しないでください。

于 2013-11-07T06:52:23.583 に答える