이것은 내 명령줄입니다 python
.
python script.py -a .faa -n .fna
여러 디렉터리가 있는 디렉터리가 있습니다. 이러한 여러 디렉터리 내에 하나 이상의 폴더가 있을 수 있습니다.
이 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
두 파일의 경로를 사용하여 스크립트가 호출됩니다.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()
두 번째 스크립트:
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