背景として、fileList
というフルパス(/.../filea.dat)
という異なるファイル名の要素を持つリストを作成しました。形式はfileList = ['/../filea.dat', '/../fileb.dat']
です。サブプロセスコマンドを使用してファイルの変数リストをループしている間にエラーが発生しました
このファイルのリスト内のすべてのファイルに対してサブプロセスコマンドを実行し、後で各ファイルのコンポーネント(および生成された新しいファイル)を別々に分析したいとします。
for i, elem in enumerate(fileList):
hexed = fileList[i]
subprocess.Popen("hexdump " + hexed + " > hexed.dat", shell=True)
with open("hexed.dat", "r") as f:
for line in f:
if "statement" in line:
value = "examplevalue"
if value == "examplevalue"
other subprocess statements that create a file that will again be used later
今私はTypeError: cannot concatenate 'str' and 'list' objects
を持っています。私が正しい方法でこの方法のアプローチをしているかどうか教えてください。
追加の説明をする必要がある場合はお知らせください。私は、他の詳細は問題に重要ではないので、基本に単純化しようとしました。
1-タイプエラーを修正したい場合は、「TypeError」について質問してください(エラーメッセージはかなり明確ですが、完全なトレースバックを追加してください)。したがって、あなたの質問は他の人にも役立つかもしれません。サブプロセスの出力を行ごとに読み取る方法を知りたい場合は、それについて質問してください(既存の質問は多いですが)。 Pythonでファイルを16進化する方法を知りたければ、あなたは別の質問としてそれについても尋ねることができます( 'hexdump'を実行する必要はありません)。あなたの質問を1つの質問ごとに制限してみてください。 – jfs
私はマルチパートの質問が理想的ではないことがわかりますが、私にとっては多くの問題が結びついています。あなたが言うように、hexdumpのための他のオプションがありますが、私はサブプロセスを使ってhexdumpの横にある他のものを実行していますが、これはここで伝えるのが簡単な部分でした。私はあなたに他の質問をしていることを保証します、私は単に自分の状況に役立つ答えを見つけられませんでしたので、私は質問を投稿しました。 – stackofpancakes
[サブプロセスタグ情報](http://stackoverflow.com/tags/subprocess/info)によくある質問 – jfs