R을 사용하여 지정된 확장자를 가진 모든 파일 나열
저는 R에 매우 처음이며 ArcGIS를 사용하여 만든 일련의 .dbf 테이블을 반복하고 일련의 그래프를 생성하기 위해 R 스크립트를 업데이트하는 작업을 하고 있습니다.
C:\Scratch라는 디렉토리에 .dbf 파일이 모두 들어 있습니다.그러나 ArcGIS가 이러한 테이블을 만들 때 .dbf.xml 파일도 포함됩니다.이러한 .dbf.xml 파일을 파일 목록에서 제거하고 반복합니다.정규 표현식을 검색하고 실험해봤지만 소용이 없었습니다.제가 사용하는 기본 표현입니다(모든 다양한 실험 제외).
files <- list.files(pattern = "dbf")
누가 저에게 길을 알려주실 수 있나요?
files <- list.files(pattern = "\\.dbf$")
$
끝은 문자열 끝임을 의미합니다. "dbf$"
작동하기도 하지만, 추가\\.
(.
정규식에서 특수 문자이므로 이스케이프해야 함) 확장자가 있는 파일만 일치시키십시오..dbf
(예를 들어, 예를 들어, .adbf
파일).
정규 표현식 대신 글러브를 사용하여 끝으로 끝나는 파일 이름만 선택합니다..dbf
filenames <- Sys.glob("*.dbf")
찾을 패턴 고정"\\.dbf"
다음을 사용하여 문자열의 끝에$
문자:
list.files(pattern = "\\.dbf$")
전체 경로가 있는 파일 목록을 제공합니다.
Sys.glob(file.path(file_dir, "*.dbf")) ## file_dir = file containing directory
저는 정교한 정규 표현을 잘 사용하지 못하기 때문에 다음과 같은 방법으로 작업을 수행할 것입니다.
files <- list.files()
dbf.files <- files[-grep(".xml", files, fixed=T)]
첫 번째 줄에는 작동 중인 dir의 모든 파일이 나열됩니다.두 번째는 ".xml"을 포함하는 모든 항목을 삭제합니다. (grep은 'files' 벡터에서 해당 문자열의 인덱스를 반환합니다. 음의 인덱스로 부분 집합을 설정하면 벡터에서 해당 항목이 제거됩니다.)일반적으로 펄 스타일의 화려한 정규 표현 없이 조잡한 패턴 매칭을 수행하기를 원하기 때문에 grep 함수에 대한 "fixed" 인수는 나의 변덕일 뿐이며, 이는 저에게 놀라움을 줄 수 있습니다.
그런 솔루션은 단순히 제 교육의 단점을 반영하는 것으로 알고 있지만 초보자에게는 유용할 수도 있습니다 =) 적어도 쉽습니다.
또 다른 옵션은 fs::dir_ls 함수입니다.와일드카드 패턴(예:"*.dbf"
) 또는 다음과 같은 정규식 패턴을 사용합니다."dbf$"
.
fs::dir_ls(dir, recurse = FALSE, glob = "*.dbf")
fs::dir_ls(dir, recurse = FALSE, regex = "dbf$")
언급URL : https://stackoverflow.com/questions/4876813/using-r-to-list-all-files-with-a-specified-extension
'programing' 카테고리의 다른 글
JEST가 코드를 실행하고 있는지 여부를 확인하는 방법은 무엇입니까? (0) | 2023.06.07 |
---|---|
TypeScript 주의를 제거하는 방법: 'length' 속성이 '{}' 유형에 없습니다. (0) | 2023.06.07 |
.xib 파일과 .storyboard의 차이점은 무엇입니까? (0) | 2023.06.02 |
Ruby: require vs require_require_require - Ruby < 1.9.2 및 >= 1.9.2에서 실행되는 문제를 해결하기 위한 모범 사례 (0) | 2023.06.02 |
온라인에서 안드로이드 소스 코드를 어디서 찾을 수 있습니까? (0) | 2023.06.02 |