QGISでシェープファイルの名前を変更しますか?


12

外国語で命名されたプロジェクトのレイヤーの膨大なリストがあります。名前に英語のタイトルを翻訳して追加したい。

レイヤーを右クリックしてレイヤー名を選択Properties -> Generalして変更すると、レイヤーツリーに表示されますが、元のファイルは変わりません。

QGISから元のファイルの名前を変更する方法はありますか?

フォルダがたくさんあるので、すべてのフォルダを検索するには時間がかかりすぎます。


1
Windowsエクスプローラーを使用しない場合は、ファイル名を変更するには、右クリックして[名前を付けて保存]を選択する必要があると思います。
Landocalrissian 2014

QGIS.orgの関連する機能リクエストをリンクする:issues.qgis.org/issues/15791。これを監視できるようにします。
Andre Silva、

回答:


9

これを行うには、i) ToCからレイヤーを削除し、ii) Shapefileに準拠するファイルの名前を変更する(つまり、shp、dbf、shx、prjなど)、iii)名前を変更したレイヤーをQGIS。ただし、そのようなワークフローを自動化する必要があります。

手順を見ると、それらはTable Managerプラグインが行うことと似ています。そこで、このようなプラグインのコードを改造してShapefileの名前を変更しましたここからダウンロードできます。

次のように使用できます(最初に小さなバックアッププロジェクトを試して、動作を確認してください)。

  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でテストしました。コードを実行した後、目次のレイヤーの順序は異なります。

問題が発生した場合はお知らせください。

レイヤーの順序を保持する必要がある場合は、新しい質問をしてください。おそらくそれを見ることができます:)。


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

それらの名前を変更するための一貫したスキーマがある場合は、Pythonスクリプトでこれを行うことができます。Pythonの1つのメソッドはos.rename(src、dest)です。具体的な詳細は、ファイルの名前を変更するアルゴリズムが何であるかによって異なります。これは、目次のレイヤー名だけでなく、実際のファイルの名前を変更するためのものです。

それ以外の場合は、翻訳する必要があるため、手動で名前を変更する代わりの方法を知りません。理論的には、Pythonで翻訳の辞書を作成することもできますが、コードを作成するには、手動で行う場合と同じくらい時間がかかります。また、ファイル自体の名前を変更すると、データソースが破損することにも注意してください。TOC内のレイヤー名のみを変更しても問題ありませんが、ArcほどQGISに精通していません。


1

このプログラムを使用して、ファイルの名前をhttp://www.bulkrenameutility.co.uk/Main_Intro.phpに変更することをお勧めします。オープンで使いやすいです。ファイルの名前を変更した後、テキストエディターでqgisプロジェクトファイルを開き(notepad ++をお試しください)、同じ検索と置換を行う必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.