QGIS에서 쉐이프 파일의 이름을 바꾸시겠습니까?


12

프로젝트에 외국어로 명명 된 거대한 레이어 목록이 있습니다. 영어 제목을 번역하고 이름에 추가하고 싶습니다.

레이어를 마우스 오른쪽 버튼으로 클릭 Properties -> General하고 레이어 이름을 선택 하고 변경하면 레이어 트리에 표시되지만 원본 파일은 동일하게 유지됩니다.

QGIS에서 원본 파일의 이름을 변경하는 방법이 있습니까?

내 폴더에서 모두 검색하는 데 너무 많은 시간이 걸립니다.


1
Windows 탐색기를 사용하지 않으려면 마우스 오른쪽 버튼을 클릭하고 다른 이름으로 저장을 선택하여 파일 이름을 변경해야한다고 생각합니다.
landocalrissian

QGIS.org의 관련 기능 요청 링크 : issues.qgis.org/issues/15791 이므로 계속 주시 할 수 있습니다.
Andre Silva

답변:


9

이렇게하려면 i) ToC에서 레이어를 제거하고, ii) Shapefile에 맞는 파일의 이름을 바꾸고 (즉, shp, dbf, shx, prj 등) iii) 이름을 바꾼 레이어를로드해야합니다. QGIS. 그러나 그러한 워크 플로우를 자동화해야합니다!

단계를 보면 테이블 관리자 플러그인의 기능과 유사합니다. 따라서 Shapefiles의 이름을 변경하기 위해 이러한 플러그인 코드를 조정했습니다 . 여기에서 다운로드 할 수 있습니다 .

이 방법으로 사용할 수 있습니다 (먼저 작은 백업 프로젝트로 작동 방법을 확인하십시오).

  1. ToC에서 QGIS 레이어의 이름을 바꾸면이 새 이름이 해당 쉐이프 파일 이름을 덮어 씁니다.
  2. QGIS 프로젝트를 스크립트 rename_shapefiles.py 와 같은 폴더에 저장하십시오.
  3. QGIS Python 콘솔을 엽니 다.
  4. 다음 코드 스 니펫을 복사하십시오.

    from rename_shapes import RenameShapefiles
    for lyr in iface.mapCanvas().layers():
        rn = RenameShapefiles( iface, lyr )
        rn.doSave()
    

그게 다야! GNU / Linux, QGIS 2.6에서 테스트했습니다. ToC의 레이어 순서는 코드를 실행 한 후에 다릅니다.

문제가 있으면 알려주세요.

레이어 순서를 유지 해야하는 경우 새로운 질문을하십시오. 아마도 볼 수 있습니다 :).


4

R 사용자의 경우 .shp 파일과 관련된 모든 파일의 이름을 일괄 적으로 바꾸는 빠른 R 기능을 작성했습니다. 뼈가 매우 튼튼하고 오류 검사 등이 없으므로 실패하면 약간의 조사가 필요합니다.

# Function to rename shapefile (.shp) and all associated files
# fpath = full file path of any of the associated files (character)
# newName = new name for the files (character)

renameShp <- function(fpath, newName) {
  dir <- dirname(fpath)
  base <- basename(fpath)
  fname <- strsplit(base, '[.]')[[1]][1]
  ls <- list.files(path=dir, pattern=fname, full.names=TRUE)
  sapply(ls, FUN=function(p){
    file.rename(from=p, to=sub(pattern=fname,replacement=newName, p))
  })
  print(paste("Renamed", length(ls), "files."))
}

1

이름을 바꾸는 일관된 스키마가 있다면 파이썬 스크립트 에서이 작업을 수행 할 수 있습니다. 파이썬에서 한 가지 방법은 os.rename (src, dest) 입니다. 특정 세부 사항은 파일 이름 바꾸기 알고리즘이 무엇인지에 따라 다릅니다. TOC의 레이어 이름뿐만 아니라 실제 파일의 이름을 변경하기위한 것입니다.

그렇지 않으면 수동으로 이름을 바꾸는 대안을 모릅니다. 번역해야하기 때문입니다. 이론적으로 파이썬으로 번역 사전을 만들 수는 있지만 수동으로 코드를 작성하는 데 시간이 오래 걸릴 수 있습니다. 또한 파일 이름을 바꾸면 데이터 소스가 손상 될 수 있습니다. TOC에서 레이어 이름 만 바꾸면 괜찮을지 모르지만 QGIS에 대해서는 Arc만큼 익숙하지 않습니다.


1

이 프로그램을 사용하여 파일 이름을 http://www.bulkrenameutility.co.uk/Main_Intro.php 로 바꾸는 것이 좋습니다 . 개방적이고 사용하기 쉽습니다. 파일 이름을 바꾼 후에는 텍스트 편집기를 사용하여 qgis 프로젝트 파일 (메모장 ++을 사용해보십시오)을 열고 동일한 찾기 및 바꾸기를 수행해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.