Проблемы с преобразованием типов файлов при вызове программы из терминала. - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь автоматизировать процесс получения файла 'pdb' из пользовательского ввода, а затем использовать этот входной файл в программе, вызываемой из терминала под названием 'Antechamber', которая выводит файл 'mol2'.

Вот мой код:

import sys

inFile = sys.argv[tetrafluoroborate.pdb]

outFile = sys.argv[tetrafluoroborate.mol2]

p = 'antechamber' + ' -i ' + inFile + ' fi pdb o- ' +  outFile  + ' -fo mol2'

subprocess.call(p)

Программа Antechamber принимает четыре команды: «-i» - входной файл, «-fi» - тип выходного файла, «-o» - выход file, а '-fo' - формат выходного файла.

Когда я запускаю скрипт, я получаю:

Traceback (most recent call last):
  File "test.py", line 4, in <module>
    inFile = sys.argv[tetrafluoroborate.pdb]
NameError: name 'tetrafluoroborate' is not defined

Я новичок в кодировании, и я ценю любую помощь. Спасибо!

1 Ответ

0 голосов
/ 17 февраля 2020

Если вам нужно вызвать сценарий antechamber из python и имена входов и выходов будут иметь одинаковый префикс, я бы предложил сценарий python, подобный следующему:

import sys

prefix = sys.argv[1]

inFile = prefix + '.pdb'
outFile = prefix + '.mol2'

pcommand = 'antechamber' + ' -i ' + inFile + ' -fi pdb -o ' +  outFile  + ' -fo mol2'
subprocess.call(pcommand)

Тогда вы можете вызов из командной строки:

python test.py tetrafluoroborate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...