
これは私のコマンドラインですpython
。
python script.py -a .faa -n .fna
複数のディレクトリを持つディレクトリがあります。これらの複数のディレクトリ内に1つ以上のフォルダがある可能性があります。
この1つ以上のフォルダでPythonスクリプト.faa
とファイルを実行する必要があります。.fna
どうすればいいですか?
サンプルツリー:
Staph1 ----> [CO1, CO2] ----> [.fna, .faa] from CO1, [.fna, .faa] from CO2
Staph2 ----> [CO6] ----> [.fna, .faa] from CO6
.fna
私のPythonスクリプトはフォルダ内の入力と出力を使用します。.faa
フォルダとディレクトリも同義です。
答え1
私はこれが役に立つと思います:
@1_CRが提案したようにスクリプトが使用され、os.walk
ファイルが同時に存在する場合(つまり、同じディレクトリに)hello_world.py
2つのファイルのパスを使用してスクリプトが呼び出されます。fna
faa
import glob, os
def scanfolder():
for path, dirs, files in os.walk('/home/shadowe/test1/test1/'):
flag_faa = 0
flag_fna = 0
for f in files:
if f.endswith('.faa'):
flag_faa = 1
faa_file_path = os.path.join(path,f)
if f.endswith('.fna'):
flag_fna = 1
fna_file_path = os.path.join(path,f)
if flag_faa == 1 and flag_fna == 1:
print "Calling script"
os.system("python hello_world.py" + " -a "+ faa_file_path + " -b " + fna_file_path)
flag_faa = 0
flag_fna = 0
scanfolder()
2番目のスクリプト:
import sys
print "Hello World"
print "This argument passing qualifies " + sys.argv[1] + " " + sys.argv[2] + " " + sys.argv[3] + " " + sys.argv[4]
出力:
$ python test.py
Calling script
Hello World
This argument passing qualifies -a /home/shadowe/test1/test1/test2/test3/two.faa -b /home/shadowe/test1/test1/test2/test3/two.fna
Calling script
Hello World
This argument passing qualifies -a /home/shadowe/test1/test1/test6/test7/four.faa -b /home/shadowe/test1/test1/test6/test7/five.fna