안녕하세요. 파이썬 질문을 자꾸 드리게 되네요ㅠ
폴더 만들고 파일복사 및 수정들에 대해서도 질문을 올렸었는데, 이제는 좀 공부가 된거같습니다.
질문드릴 내용은
subprocess 모듈을 써서, 어떤 프로그램을 자동으로 실행시키려고 하는데 어려워서 도움을 구해봅니다.
일단 프로그램 실행 커맨드는 아래와 같습니다.
]$ gmx pdb2gmx -f protein.pdb(input 파일 입니다.) -ignh -ter
나름 찾아보니 os.system을 사용해도 된다는데 subprocess를 사용하는 걸 권하던데... 해보니 잘 안되네요.
os.system("gmx pdb2gmx") 으로는 프로그램이 일단 실행되는걸 확인 했는데,
subprocess.call("gmx pdb2gmx") 으로는
Traceback (most recent call last):
File "./test.py", line 11, in <module>
subprocess.call("gmx pdb2gmx")
File "/usr/local/python_3.6.0/lib/python3.6/subprocess.py", line 267, in call
with Popen(*popenargs, **kwargs) as p:
File "/usr/local/python_3.6.0/lib/python3.6/subprocess.py", line 707, in __init__
restore_signals, start_new_session)
File "/usr/local/python_3.6.0/lib/python3.6/subprocess.py", line 1326, in _execute_child
raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'gmx pdb2gmx'
이런 메시지를 받았습니다.
도움 부탁드려 봅니다.
python ½ÇÇà °æ·Î ¶Ç´Â exportµÈ path ³»¿¡ gmx°¡ ¾ø´Â °ÍÀ¸·Î º¸ÀÔ´Ï´Ù
gmx¸¦ / °æ·ÎºÎÅÍ Àû¾îÁÖ½Ã¸é µÉ °Í °°½À´Ï´Ù.
subprocess.call(["gmx", "pdb2gmx"]) ÀÌ·¸°Ô µû·Î ÀûÀ¸´Ï µË´Ï´Ù~ ¤¾¤¾
´äº¯ °¨»çÇÕ´Ï´Ù.
½ÇÇà ÈÄ ¹øÈ£·Î ¼±ÅÃÇÏ´Â°Ô ³ª¿À´Âµ¥, ±×°É ¼±ÅÃÇÏ°Ô ÇÏ´Â°Ô ¾î¶² °ÍÀÎÁö ¸ð¸£°Ú³×¿ä ¤Ð
Ä¿¸ÇÆ® ¶óÀÎ ÀÎÅÍÆäÀ̽º·Î µ¹¸®´Â ÇÁ·Î±×·¥ÀÇ °æ¿ì´Â º¸Åë µ¿ÀÛ°úÁ¤À» ´ãÀº ½ºÅ©¸³Æ®¸¦ ¹Þ´Â °æ¿ì°¡ ¸¹°í¿ä ±×·¸Áö ¾ÊÀ¸¸é stdinÀ» ÆÄÀϷκÎÅÍ ÀÐ¾î¼ ½÷ÁÖ´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
http://stackoverflow.com/questions/163542/python-how-do-i-pass-a-string-into-subprocess-popen-using-the-stdin-argument
Âü°íÇϼ¼¿ä~