2017-03-01 1 views
4

Gibt es eine Möglichkeit, R kontinuierlich das Arbeitsverzeichnis nach neuen Dateien (in diesem Fall CSVs) durchsuchen zu lassen und, wenn eine neue Datei im Arbeitsverzeichnis gefunden wird, um es zu lesen und einige (immer die gleiche) Aufgabe darauf auszuführen, und dann zurückgehen, um nach neuen Dateien zu suchen, bis ich sage, dass es aufhören soll?Ständig nach neuen Dateien im R-Arbeitsverzeichnis suchen

+0

einen Cron-Job einrichten, dass das gleiche Skript in regelmäßigen Abständen laufen würde, oder Endlosschleife verwenden wie: 'while (TRUE) {list.files() ... überprüfen, ob neue, wenn ja, dann Tasks} 'möchten Sie möglicherweise Pause innerhalb While-Schleife einzuführen. – zx8754

+0

Sie können davon Gebrauch machen: https://github.com/bnosac/taskscheduleR – lbusett

+0

Sehr ähnliche Frage: Antworten schlagen vor, eine System-API oder das qtbase-Paket zu verwenden. http://stackoverflow.com/questions/4780632/monitoring-for-changes-in-files-in-real-time- – neilfws

Antwort

2

Ich würde empfehlen, dies in eine While-Schleife zu setzen.

setwd("path_you're_interested_in") 
old_files <- character(0) 
while(TRUE){ 
    new_files <- setdiff(list.files(pattern = "\\.csv$"), old_files) 
    sapply(new_files, function(x) { 
     # do stuff 
    }) 
    old_files = c(old_files, new_files) 
    Sys.sleep(30) # wait half minute before trying again 
} 
+1

Ich habe einige ziemlich schwere Änderungen vorgenommen - die Schleife wird jetzt nur nach Dateien mit neuen Namen suchen, Sie don Ich brauche keine Datentabellenabhängigkeit, wenn wir nicht wissen, was OP machen will, "//" funktioniert nicht für Kommentare in R, und ich fügte eine Pause hinzu. – Gregor

+0

@Gregor gute Punkte. Danke für die Hilfe – Crt

+0

Das funktioniert perfekt, danke! –

Verwandte Themen