2016-09-08 17 views
1

Мне нужен алгоритм для обновления входного файла, я узнал, что могу изменить файл .py и запустить его в abaqus.взаимодействующий python и abaqus

Но из-за процесса необходимо автоматизировать, я пытаюсь открыть сценарий и запустить его в Abaqus

Я попытался это: os.system ('Abaqus CAE скрипт = C: \ Users \ Самуила \ Abaqus-1 \ script1.py ')

import os 
import subprocess 


HERE = os.path.dirname(os.path.abspath(__file__)) 


def create_script(name): 
    path = os.path.join(HERE, 'abaqus-1', name) 
    return path 


name = 'script1.py' 
script_path = create_script(name) 
print (script_path) 


args = ['abaqus', 'cae', 'script={0}'.format(script_path)] 
print (args) 
p = subprocess.Popen(args) # Success! 
print(p.communicate()) 

это работает на ЦМД дос окна, но не работает на питона, если кто-нибудь может помочь мне, что я был бы признателен за это

ошибка

['abaqus', 'cae', 'script=C:\\Users\\Samuel\\abaqus-1\\script1.py'] 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Users\Samuel\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 714, in runfile 
    execfile(filename, namespace) 
    File "C:\Users\Samuel\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 89, in execfile 
    exec(compile(f.read(), filename, 'exec'), namespace) 
    File "C:/Users/Samuel/prueba control.py", line 28, in <module> 
    p = subprocess.Popen(args) # Success! 
    File "C:\Users\Samuel\Anaconda3\lib\subprocess.py", line 947, in __init__ 
    restore_signals, start_new_session) 
    File "C:\Users\Samuel\Anaconda3\lib\subprocess.py", line 1224, in _execute_child 
    startupinfo) 
FileNotFoundError: [WinError 2] The system cannot find the file specified 
+1

Для начала вам нужно указать, почему он не работает на python. «не работает» - довольно плохое описание ошибки. – grochmal

+0

Возможно, посмотрите на подпроцесс: https://docs.python.org/3.5/library/subprocess.html#module-subprocess – Phidelux

+0

вы можете попробовать 'noGUI = script.py', но на самом деле« does not work »слишком неопределенный – agentp

ответ

1

Может быть, это предложение неверно -

os.system('abaqus cae script=C:\Users\Samuel\abaqus-1\script1.py') 

Вы должны запустить скрипт питона в Abaqus с помощью команды

abaqus cae noGUI=nameOfScript.py 

Так что в вашем случае,

os.system('abaqus cae noGUI=C:\\Users\\Samuel\\abaqus-1\\script1.py') 

Я не обязательно о «\», так как я обычно открываю abaqus в той же папке, где у меня есть мои скрипты python.

Смежные вопросы