【问题标题】:Run Putty command from python从 python 运行 Putty 命令
【发布时间】:2014-11-20 16:49:20
【问题描述】:

我目前有一个 .sh 文件,我从中运行一个名为 metl 的命令。 metl 是一个 python 包,它有助于从几乎任何来源提取、转换和加载数据。

我需要在腻子控制台中正常工作的正常程序如下:

metl -m migration.pickle1 
     -t migration.pickle2 
     -s filename.csv 
     config_file.yml

我从我的 .sh 文件运行并且正常工作的过程如下:

metl -m migrationfiles/"${migbefore}" \
    -t migrationfiles/"${migafter}" \
    -s "${y}" \
    config_file.yml

对不起,我之前不够清楚,一般我想从 PuTTY 控制台运行一个 Python 脚本,并且从这个 Python 脚本中我需要运行一个 PuTTY 命令,这是我之前提到的 (metl -m migration.pickle1....)

所以我要运行的是:

import os

os.system("metl -m " + path + ""\"" + migbefore + "-t " + path + ""\"" + migafter + "-s " + csvfile + " " + directory + ""\"" + config_file.yml)

【问题讨论】:

  • 这和 PuTTY 有什么关系?另外,请附上有问题的代码、你用来运行它的命令、它的作用以及它与你期望它做的不同之处。
  • 尝试从您的代码中删除所有""\"" 子字符串(您不需要它)。但如果你需要输入"\",请使用"\\" 而不是""\""
  • 另外,config_file.yml 必须用引号引起来。只需正确加上引号即可解决关闭此问题。
  • 我也试过这个解决方案,效果很好,我设法解决了更正语句引号的问题,非常感谢!

标签: python bash shell putty


【解决方案1】:

我建议使用:

import subprocess
proc_args = ['metl', '-m', 'arg2', ....]
process = subprocess.Popen(proc_args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=subprocess.PIPE)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 2016-01-03
    • 1970-01-01
    • 2021-09-18
    相关资源
    最近更新 更多