【问题标题】:How to export bash scripts to python? [closed]如何将 bash 脚本导出到 python? [关闭]
【发布时间】:2018-10-21 20:53:39
【问题描述】:

我想用 Python 导出这段代码:

#!/usr/bin/env bash

export LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8"

echo Starting carddav sync at $(date)

mkdir -p carddav

cat vdirsyncer.config.template | sed 
"s/VDIRSYNC_USER/$VDIRSYNC_USER/; s/VDIRSYNC_PASS/$VDIRSYNC_PASS/" > 
vdirsyncer.config

yes | vdirsyncer -c vdirsyncer.config discover

vdirsyncer -c vdirsyncer.config sync

rm vdirsyncer.config

echo Carddav sync done, starting carddavsync

我尝试利用 bash2py,但没有成功。

【问题讨论】:

  • 您想在 Python 中创建等效代码吗?您想从 Python 运行脚本吗?你想...?
  • 不幸的是 SO 不是代码翻译服务。
  • 请阅读此内容。 Why is "Help me" is not a question? 。我们派人来阅读这篇文章,因为 Stack Overflow 用于提出具体问题。

标签: python python-3.x bash


【解决方案1】:

尝试导入os库,然后将bash指令传递给函数system,例如:

import os
bashCommand = 'export LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8'
os.system(bashCommand)

【讨论】:

  • 对不起,我想用 Python 脚本不调用的 Python 语言重写代码
【解决方案2】:

您可以使用 subprocess 在您的 python 代码中执行 bash/shell 脚本。这是一个例子:

import subprocess

command = "npm-cli-login -u "+user+" -p \""+password+"\" -e "+email+" -r \""+self.nexusUrl+"/repository/deploy.npm.cloud/\" --config-path npmrc"

process = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)
output, error = process.communicate()

您可以在这里阅读更多内容:https://docs.python.org/3/library/subprocess.html

【讨论】:

    【解决方案3】:

    最简单的方法是创建一个包含所需内容的 bash 脚本,然后在 python 中执行它。 确保给它execution Permissions,如果Path不在同一目录中,则可能将其更改为脚本。

    #!/usr/bin/python
    
    import subprocess
    subprocess.call("./mybashscript.sh", shell=True)
    

    【讨论】:

    • 对不起,我想用 Python 脚本不调用的 Python 语言重写代码
    猜你喜欢
    • 2014-11-12
    • 2021-12-02
    • 2011-06-13
    • 2014-06-25
    • 2013-11-25
    • 2010-10-31
    • 1970-01-01
    相关资源
    最近更新 更多