2017-03-01 12 views
4

Rに新しいファイル(この場合はCSV)の作業ディレクトリを継続的にスキャンさせる方法はありますか?また、新しいファイルが作業ディレクトリに追加されたことがわかるたびに、それを読んで、それにいくつかの(常に同じ)タスクを実行してから、停止するように言うまで、新しいファイルのスキャンに戻ります。R作業ディレクトリ内の新しいファイルを常にスキャンする

+0

はそれが定期的に同じスクリプトを実行するか、のような無限ループを使用し、cronジョブを設定しますタスク}} whileループ内で一時停止を導入したいかもしれません。 – zx8754

+0

あなたはこれを利用することができます:https://github.com/bnosac/taskscheduleR – lbusett

+0

非常によく似た質問です。答えは、システムAPIまたはqtbaseパッケージを使用することをお勧めします。 http://stackoverflow.com/questions/4780632/monitoring-for-changes-in-files-in-real-time – neilfws

答えて

2

これをwhileループに入れることをおすすめします。 、 `しばらく(TRUE){list.files()...はいあれば、任意の新しいかどうかを確認:

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

かなり重い編集を行いました。ループでは新しい名前のファイルのみが検索されますOPが何をしたいのかわからないときはデータテーブルの依存関係が必要ですが、 '//'はRのコメントには作用せず、一時停止しました。 – Gregor

+0

@Gregor良い点。助けてくれてありがとう – Crt

+0

これは完璧に動作します、ありがとう! –

関連する問題