【问题标题】:run perl script with python用 python 运行 perl 脚本
【发布时间】:2014-12-27 08:13:25
【问题描述】:

我一直在这里和其他地方查看多个示例,但似乎没有什么对我有用。我对python一无所知。我要做的就是运行一个简单地位于

的 perl 脚本
sdb1/media/process.pl

我发现的示例代码到处都是,而且大部分看起来它有我不需要的额外内容。我现在正在尝试的是

#! /usr/bin/python
pipe = subprocess.Popen(["perl", "/sdb1/media/process.pl"], stdout=subprocess.PIPE)

但这只是给了我错误

NameError: name 'subprocess' is not defined

如果我错过了任何重要的事情,请告诉我。否则,感谢您的宝贵时间。

【问题讨论】:

    标签: python linux perl


    【解决方案1】:

    需要导入子进程库才能运行子进程

    #! /usr/bin/python
    
    import subprocess
    
    pipe = subprocess.Popen(["perl", "/sdb1/media/process.pl"], stdout=subprocess.PIPE)
    

    【讨论】:

    • 太容易了。谢谢。我必须再等 8 分钟才能接受。
    • 一个挥之不去的问题...当我通过命令行运行 perl 脚本时,它会一直执行。当我通过 python 执行此操作时,它会在第一行之后挂起。有没有简单的解决方案?
    • 没关系。我想到了。我只是将其更改为 stdout=subprocess.PIPE).communicate()
    【解决方案2】:

    或者,如果您只是多次使用相同的功能,您可以这样做

    from subprocess import Popen
    

    然后你就可以打电话了

    pipe = Popen(["perl", "/sdb1/media/process.pl"], stdout=subprocess.PIPE)
    

    我会发表评论,但我需要 50 个代表。

    【讨论】:

      猜你喜欢
      • 2012-09-05
      • 1970-01-01
      • 2010-09-26
      • 1970-01-01
      • 2014-10-08
      • 2014-09-29
      • 2015-05-27
      • 2018-09-18
      • 2017-10-26
      相关资源
      最近更新 更多