Als Hintergrund habe ich eine Liste mit Elementen unterschiedlicher Dateinamen mit ihrem vollständigen Pfad (/.../filea.dat)
namens fileList
erstellt, es ist von variabler Länge. Es hat die Form fileList = ['/../filea.dat', '/../fileb.dat']
.TypeError beim Durchlaufen einer variablen Liste von Dateien mit Unterprozessbefehlen
Ich möchte einen Unterprozessbefehl für jede Datei in dieser Liste von Dateien ausführen, dann analysieren Sie später die Komponenten jeder der Dateien (und erzeugte neue Dateien) separat.
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
Im Moment habe ich eine TypeError: cannot concatenate 'str' and 'list' objects
. Lassen Sie mich wissen, ob ich auch mit diesem Methodenansatz auf dem richtigen Weg bin.
Bitte lassen Sie mich wissen, wenn ich zusätzliche Erläuterungen geben muss; Ich habe versucht, die Grundlagen zu vereinfachen, da die anderen Details für das Problem nicht wichtig sind.
1-, wenn Sie die 'TypeError' dann fragen nach dem' TypeError' korrigieren möchten (obwohl die Fehlermeldung ziemlich klar zu sein scheint. [Bearbeiten] Ihre Frage ein und fügen Sie die komplette Rückverfolgung). Daher könnte Ihre Frage auch für jemand anderen nützlich sein. Wenn Sie wissen möchten, wie Sie eine Unterprozessausgabe Zeile für Zeile lesen können, fragen Sie danach (obwohl es bereits viele Fragen gibt). Wenn Sie wissen möchten, wie man eine Datei in Python hexlifiziert, Sie können auch nach einer separaten Frage fragen (Sie müssen nicht "hexdump" ausführen) Versuchen Sie, Ihre Fragen auf ein einzelnes Problem pro Frage zu beschränken. – jfs
Ich kann sehen, wie ich mehrteilige Frage ist nicht ideal, aber für mich viele der Probleme zusammen. Während, wie Sie sagen, es gibt andere Optionen für Hexdump Ich verwende den Subprozess, um andere Dinge neben Hexdump durchzuführen, das war nur ein leichter Teil hier zu vermitteln. Ich versichere Ihnen, dass ich mir andere Fragen angeschaut habe. Ich fand diese Antworten einfach nicht hilfreich für meine Situation, also stellte ich meine Frage. – stackofpancakes
Es gibt allgemeine Fragen in [die Subprozess-Tag-Info] (http://StackOverflow.com/Tags/SubProcess/info) – jfs