Skip to main content
 首页 » 编程设计

python之运行 Perl 脚本并从 Python 向其中输入命令

2025年05月04日9lovecherry

我学习 Python 已经一周了,我正在尝试编写一段代码,使我能够在 LXTerminal 中自动运行基于文本的 Perl 脚本。我有几个关于一些细节的问题。

我需要我的代码来使用用户输入的环境文件启动 Perl 脚本,在 Perl 脚本中输入一些特定的设置,然后读入许多 .txt 文件,一次一个,读入 Perl 脚本。它还需要为每个单独的 .txt 文件重新启动进程并捕获每个单独的输出(如果每个输出都可以写入单个 .csv 文件会有所帮助)。

要调用 Perl 脚本,我从以下内容开始:

alphamelts="/home/melts/Desktop/alphamelts" 
pipe=subprocess.Popen(["perl", "/home/Desktop/melts/alphaMELTS", "run_alphamelts.command -f %s"]) % raw_input("Enter an environment  file:"), stdout=PIPE 

假设这是正确的,我现在需要它读取 .txt 文件,输入基于数字的命令,让我的代码等待 Perl 脚本完成计算,我需要它把输出写入 .csv文件。如果有帮助,我正在运行的 Perl 脚本会在程序存在后自动生成一个以空格分隔的文件,其中包含其计算结果,但如果仅将其输出的一些输出写入单个单独的 .csv 文件,那将非常有用对于处理的每个 .txt 文件。

不知道从这里到哪里去,但我绝对必须让它工作。抱歉太复杂了。

谢谢!

请您参考如下方法:

您可以在 ipython 中做一些非常酷的事情。查看this notebook对于一些具体的例子。至于等待子进程完成,我认为您需要在脚本中放置一个 pause 。此外,对于数据处理和导出到 csv 和 excel,我建议 pandas 只是让您入门的东西。