使用Python中的文本文件输出运行IDL代码

使用Python中的文本文件输出运行IDL代码,python,python-2.7,idl,idl-programming-language,Python,Python 2.7,Idl,Idl Programming Language,我有许多不同的代码,它们都以一个包含数据的文本文件作为输入,然后写入另一个文件作为输出。其中三个代码是用Python 2.7编写的,但有一个是用IDL编写的。我的目标是通过键入“pythonmaster.py”,创建一个可以运行所有这些代码的“master”python程序。但是,由于我的系统的限制,我无法使用中提到的“pyIDL”或“pyIDLy”模块。不确定这是否重要,但这是使用linux命令提示符 当前我的“master.py”代码如下所示: import os os.system("py

我有许多不同的代码,它们都以一个包含数据的文本文件作为输入,然后写入另一个文件作为输出。其中三个代码是用Python 2.7编写的,但有一个是用IDL编写的。我的目标是通过键入“pythonmaster.py”,创建一个可以运行所有这些代码的“master”python程序。但是,由于我的系统的限制,我无法使用中提到的“pyIDL”或“pyIDLy”模块。不确定这是否重要,但这是使用linux命令提示符

当前我的“master.py”代码如下所示:

import os
os.system("python pycode_1.py")

os.system("idl")
os.system(".com idlcode.pro")
os.system(".r idlcode,"imputfile.dat"")
os.system("exit")

os.system("python pycode_2.py")
os.system("python pycode_3.py")
此代码运行第一个python代码并输入IDL fine。但是,它不会将后面的命令输入IDL。这意味着会出现IDL命令提示符,但我无法运行后面的IDL代码

我将非常感谢任何解决这个问题的建议。
提前谢谢

所以我找到了一个解决这个问题的方法。上面的问题是使用os.system函数做它做不到的事情。我的新密码是:

import os
import subprocess

os.system("python python_code1.py")

p=subprocess.Popen("idl", stdin=subprocess.PIPE, stdout=subprocess.PIPE)
p.stdin.write(".com idlcode.pro\n")
p.stdin.write("idlcode\n")
p.stdin.write("exit")
p.wait()
os.system("python python_code2.py")
os.system("python python_code3.py")

所以我找到了一个解决这个问题的方法。上面的问题是使用os.system函数做它做不到的事情。我的新密码是:

import os
import subprocess

os.system("python python_code1.py")

p=subprocess.Popen("idl", stdin=subprocess.PIPE, stdout=subprocess.PIPE)
p.stdin.write(".com idlcode.pro\n")
p.stdin.write("idlcode\n")
p.stdin.write("exit")
p.wait()
os.system("python python_code2.py")
os.system("python python_code3.py")

如果您有IDL8.5或更高版本,它附带内置的IDLPythonbridge。然后,您的代码将类似于:

from idlpy import *
IDL.idlcode()

希望这有帮助。

如果您有IDL 8.5或更高版本,它附带内置的IDL Python桥。然后,您的代码将类似于:

from idlpy import *
IDL.idlcode()

希望这有帮助。

您要执行的程序“idl”到底是什么?idl是一种编程语言。因此,命令“idl”启动idl命令行提示符,类似于键入“python”。然后,以下命令应该编译并运行脚本。你能提供一个链接到你正在使用的版本吗?我想我现在有了一个解决方案,但不管怎样,这还是适用的。它使用的是IDL 8.2您试图执行的程序“IDL”到底是什么?IDL是一种编程语言。因此,命令“idl”启动idl命令行提示符,类似于键入“python”。然后,以下命令应该编译并运行脚本。你能提供一个链接到你正在使用的版本吗?我想我现在有了一个解决方案,但不管怎样,这还是适用的。它使用的是IDL8.2