R檔案系統管理

weixin_33843409發表於2017-11-21

檔案系統互動的重要性

檔案系統管理是儲存和組織我們的資料的方法。在資料科學專案中頻繁地接觸到資料夾和檔案管理。如在爬蟲專案中,涉及工作路徑的設定,資料夾的建立,檔案的批量命名,檔案的批量匯入等操作。因此,高效、科學的檔案管理方式將能夠大大地提高我們的工作效率。

下面,讓我們一起來全面地梳理R中檔案系統管理的相關函式。

相關函式介紹

R中與檔案系統管理相關的函式非常多,名字也不太好記憶,但從處理的物件上,基本可以劃分為:工作路徑管理;資料夾管理;檔案管理;擴充套件包管理等類別。而從功能劃分上又逃不過“增、刪、查、改”這四個類別。

下面,為了方便我們以後查閱,將從處理物件上進行逐一介紹各功能函式。

工作路徑管理

  • getwd():獲得當前工作路徑

  • setwd():設定工作路徑

資料夾管理

  • dir.create():建立一個新的目錄

  • unlink():刪除檔案和目錄

  • dir():檢視當前目錄下的所有資料夾和檔名

  • list.files():檢視當前目錄的子目錄和檔案,同dir()

  • list.dirs():檢視當前目錄的子目錄

  • path.expand():擴充套件路徑名

  • normalizePath():轉換Windows或Linux的路徑分割符

  • shortPathName():縮短路徑的顯示長度(Windows中使用)

檔案管理

  • file.path():拼接目錄字串,建立路徑名

  • file.info():檢視檔案完整資訊

  • file.exists():檢視檔案是否存在

  • file.access():檢視檔案許可權

  • Sys.chmod():修改檔案許可權

  • file.rename():修改檔名

  • file.remove():刪除檔案

  • file.append():檔案內容拼接

  • file.copy():複製檔案

  • basename():獲得最低等級的路徑名(即檔名)

  • dirname():獲得除檔名外的路徑名

壓縮/解壓檔案

  • zip():建立一個壓縮檔案

  • unzip():從壓縮檔案中獲得某些檔案

擴充套件包管理

  • R.home():檢視R軟體的相關目錄

  • .Library:檢視R核心包的目錄

  • .Library.site:列印核心包的目錄和root使用者安裝包目錄(Linux下)

  • .libPaths():列印所有包的存放目錄

  • system.file():檢視指定包所在的目錄

綜合應用案例

情景1

以爬蟲為例,在批量下載網頁時可能需要做這麼幾件事:

  • 建立一個新目錄

  • 更改當前工作路徑

  • 檔案批量命名並寫入本地

if(!file.exists("JDDownload")) dir.create("JDDownload")setwd("JDDownload")

進行檔案批量命名並寫入本地時,可以自定義一個功能函式,傳入一些標記檔案唯一性的引數,並在自定義函式內結合paste()函式使用。

  FileName<-paste0('Product/',Brand,Code,'_pageSource.html')
  writeLines(text = Product_pageSource,con = FileName)

情景2

需要獲得某一路徑下的所有檔名,以及對檔名進行批量的重新命名。可以使用dir()函式,file.rename()函式,並且和stringr包結合使用。









本文轉自 h2appy  51CTO部落格,原文連結:http://blog.51cto.com/h2appy/1858534,如需轉載請自行聯絡原作者

相關文章