2016-08-28 170 views
0

我想從一個文件夾中讀取文件,指望他們,然後循環使用,長度要經過的每個文件,使用cat功能和第一個文件,把在output.txt的輸出如:從.txt文件中讀取值,並將其寫入到輸出文件

  • 文件1:貓輸出
  • 文件2:貓輸出

我的代碼如下所示:

entry = list.files(path = "//Users//michael/Desktop//test_folder", full.names = TRUE, recursive = TRUE) 
output = list.files(path = "//Users//michael/Desktop//list.txt", full.names = TRUE, recursive = TRUE) 
len = length(entry) 
for(i in 1){ 
cat(entry,file="//Users//michael/Desktop//list.txt", sep="\t", append=TRUE) 
cat("\n",file="//Users//michael/Desktop//list.txt", append=TRUE) 
} 

我也嘗試過for(i in 1:len),但這隻會讓這個x3更長,因爲它爲'i'的每次迭代都做了。

我test_folder樣子:

與值(約翰,邁克爾,費邊)各一新行
  • 文件1.txt的(\ n)的
  • 文件2.txt有相似的價值觀

總結:
我試圖加載我test_folder,算上文件數量(在我的情況2),經過每個文件在for循環和cat他們讓我看看裏面有什麼,然後裏面打印值我的list.txt(輸出)在這樣的格式:

  • 文件1:貓輸出
  • 文件2:貓輸出

哪裏是我的錯誤,以及如何將輸出/改變代碼的樣子,以使這項工作?

+0

試圖瞭解你的目標是什麼:你試圖製造的最終產品是什麼? –

+0

@MichaelDavidson這是學習曲線。我只想瀏覽文件夾中的文件(只會有.txt文件)> cat他們並在output.txt文件中輸出它們的值。只是一個學習曲線。後來我會交換一些代碼與功能,將做其他事情等。你有任何輸入我怎麼能做到這一點?謝謝! – Michael

回答

1

好的,如果我理解正確,你想從一個目錄打開幾個.txt文件,然後連接它們的內容。我建議使用list.files(像你已經是),然後lapplyreadLines打開這些文件。

獲取.txt文件的位置。這將產生一個清單,清單是一個目錄(文件位置)的每一個元素:

dirs <- list.file(path="path/to/input/directory", full.path=TRUE) 

使用lapply超過迭代列表中的元素(如您的for環路),並用功能readLines打開它們。這將產生具有相同數量的元素dirs的名單,但是這一次它包含的文本文件的內容:

myfiles <- lapply(dirs, readLines) 

最後,結合列表的這些元素(每片含一個文本文件的內容)合併爲一個對象,您可以將其保存爲單個文本文件。

dat <- do.call("rbind", myfiles) # note rbind might need to be replaced with "c" depending on the contents of the .txt files 

對不起,如果我失去了一些東西或誤解。請評論,我會做出相應調整。

+0

這實際上工作!我有第二個問題給你。現在我正試圖從某個文件夾加載圖像,並使用** mxnet **庫獲取圖像的結果。例如,如果我從文件夾中加載圖像,並且它上面有一隻兔子,某種輸出應該是「它是90%的兔子」。我有一個適用於1張圖片的版本,但現在我試圖將其更改爲多張圖片。這就是爲什麼這一切。你有什麼提示嗎? :)也謝謝你的解決方案 – Michael

+1

很高興工作。我會查看一些這些教程:http://mxnet.io/packages/r/index.html我沒有使用過這個包。嘗試之後,您可以發佈一個新問題。 –

相關問題