私はファイルの内容をpythonでテールしようとしています。サブプロセスを使用してpython 2.7で末尾のcmd出力を取得する
tail: cannot open `/hostname/user/app/filename.*39102'
私はbashで直接ファイルパスでtailコマンドを実行した場合、私は出力を参照してください:上記のコードは以下のようなエラーがスローされます
#! /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 -10 /hostname/user/app/filename.*39102
はなぜサブプロセスは、余分なバッククォートを渡している( `)tailコマンドを実行するときに?
更新:
私はpopenのCMDに渡し、その後@cdarkeを示唆していたとして、ファイルを見つけるために、グロブを使用して終わりました。
別の可能性:ファイル名のリストを取得するには、Python関数 'glob.glob(" filename。* ")'を使用します。もう一つの可能性があります: 'Popen'パラメータに' shell = True'を追加するのは、ファイル拡張(globbing)を行うシェルなのでです。 – cdarke