Ich bin durch eine Liste von .tar.gz-Dateien durchforsten, entpacken Sie sie und machen Sie eine Analyse mit ihnen. So weit, ist es gut. Das Problem ist, wenn einige der Dateien beschädigt sind, untar
einen Fehler auslöst und die Verarbeitung stoppt.Fangen Sie einen Fehler von tar und fahren Sie mit der Verarbeitung fort
Mein Code ist wie folgt aus:
f <- dir(path.to.files, pattern=".tar.gz")
for(k in 1:length(f)){
# make sure the temporary dir is empty
file.remove(dir(path = tempdir(), full.names = TRUE)
untar(f[k], exdir = tempdir())
# do some analisys with the extracted files
}
Ich würde eher den Fehler fangen von untar, überspringen, die beschädigte Datei, und einfach meine Schleife fortgesetzt. Ich habe bereits versucht, try
und tryCatch
aber ohne Glück zu verwenden.
Gibt es eine Möglichkeit zu sagen untar
, um eine Warnung anstelle eines Fehlers zu werfen?
Bitte fügen Sie eine Beschreibung dessen ein, was passiert ist, als Sie versuchten, "try" und "tryCatch" zu verwenden. " Dies könnte helfen, das Problem zu diagnostizieren. Außerdem gibt es ein Extras-Argument in "untar", das Optionen an das tar-Programm übergibt. Vielleicht kann das tar-Programm selbst eine Option haben, um besser zu scheitern. – lmo
'try' führt nur zu einer zusätzlichen Warnung: for (i in seq_len (ceiling (Größe/512L))) aber ich habe herausgefunden, dass ich' tryCatch' falsch verwendet habe. Ich stelle es einfach vor den Untar-Befehl, ohne den Fehler zu bewerten. Durch das Einfügen einer Fehlerbehandlungsfunktion in tryCatch wurde das Problem gelöst. Danke trotzdem. – smoff