python - subprocess.check_output 追加 \n 即使字符串不包含它
问题描述
使用 Python,我正在尝试运行以下git
命令。
import subprocess
output = subprocess.check_output(["git", "rev-parse", "--short=7", "HEAD"])
commit = output.decode("utf-8")
print("Repo is on commit ", commit)
# Works well until here but in the below line it fails to understand commit
version = subprocess.check_output(['git', 'describe', '--tags', f'{commit}'])
问题:
它工作得很好,但最后一行。即使变量具有正确的值,第二次调用subprocess.check_output
也不能很好地理解。它抱怨以下错误:commit
commit
subprocess.CalledProcessError: Command '['git', 'describe', '--tags', '6959fdf\n']' returned non-zero exit status 128.
没有上面几行即使打印正确也\n
存在。commit
commit
\n
解决方案
output
(从subprocess.check_output(…)
有换行符。把它去掉:
commit = output.strip().decode("ascii")
推荐阅读
- python - 使用线程的动画
- node.js - gitlab ci 为什么在获取更改时删除 node_modules 以及我们如何跳过删除
- javascript - 如何在渲染功能中获取特定记录页面的 URL?
- javascript - 禁用 Search.Input 按钮和.design
- ssh - 如何让 gitlab CI 使用 ssh 克隆存储库?
- reactjs - WebStorm 调试器中的“ReferenceError:未定义进程”
- c# - 如何让浏览器弹出默认用户认证提示?
- java - 卡夫卡阅读 MyClac
- python - 如何在 python (pywin32) 中从 Inventor COM API 创建和使用对象
- php - 无法从其他域接收 $_POST 数据