gpt4 book ai didi

python - 使用子进程在 python 2.7 中获取尾命令输出

转载 作者:太空宇宙 更新时间:2023-11-04 10:23:34 24 4
gpt4 key购买 nike

我正在尝试通过 python 跟踪文件的内容。我使用的代码如下

#! /usr/bin/python

import subprocess
import os.path

# Get the file path
filepath = os.path.join(baseDir,"filename.*" + uniqueId)
# Call subprocess and get last 10 lines from file
spTailFile = subprocess.Popen(["tail", "-10", filepath ], stdout=subprocess.PIPE)
tailOutput = spTailFile.communicate()[0]
print tailOutput

以上代码报错如下:

tail: cannot open `/hostname/user/app/filename.*39102'

如果我直接在 bash 中使用文件路径执行 tail 命令,我会看到输出。

tail -10 /hostname/user/app/filename.*39102

为什么子进程在执行 tail 命令时要传递一个额外的反引号 (`)?

更新:

我最终按照@cdarke 的建议使用 glob 查找文件,然后将其传递给 Popen cmd。

最佳答案

Bash 扩展了 '*',但 Popen 没有。

两种可能性:.
1. 在您的脚本中执行此操作并传递不带“*”的文件名。
2. 创建一个 Bash 脚本并从 python 调用它。

关于python - 使用子进程在 python 2.7 中获取尾命令输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42724577/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com