外国語で命名されたプロジェクトのレイヤーの膨大なリストがあります。名前に英語のタイトルを翻訳して追加したい。
レイヤーを右クリックしてレイヤー名を選択Properties -> General
して変更すると、レイヤーツリーに表示されますが、元のファイルは変わりません。
QGISから元のファイルの名前を変更する方法はありますか?
フォルダがたくさんあるので、すべてのフォルダを検索するには時間がかかりすぎます。
外国語で命名されたプロジェクトのレイヤーの膨大なリストがあります。名前に英語のタイトルを翻訳して追加したい。
レイヤーを右クリックしてレイヤー名を選択Properties -> General
して変更すると、レイヤーツリーに表示されますが、元のファイルは変わりません。
QGISから元のファイルの名前を変更する方法はありますか?
フォルダがたくさんあるので、すべてのフォルダを検索するには時間がかかりすぎます。
回答:
これを行うには、i) ToCからレイヤーを削除し、ii) Shapefileに準拠するファイルの名前を変更する(つまり、shp、dbf、shx、prjなど)、iii)名前を変更したレイヤーをQGIS。ただし、そのようなワークフローを自動化する必要があります。
手順を見ると、それらはTable Managerプラグインが行うことと似ています。そこで、このようなプラグインのコードを改造してShapefileの名前を変更しました。ここからダウンロードできます。
次のように使用できます(最初に小さなバックアッププロジェクトを試して、動作を確認してください)。
そこで次のコードスニペットをコピーします。
from rename_shapes import RenameShapefiles
for lyr in iface.mapCanvas().layers():
rn = RenameShapefiles( iface, lyr )
rn.doSave()
それでおしまい!GNU / Linux、QGIS 2.6でテストしました。コードを実行した後、目次のレイヤーの順序は異なります。
問題が発生した場合はお知らせください。
レイヤーの順序を保持する必要がある場合は、新しい質問をしてください。おそらくそれを見ることができます:)。
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."))
}
それらの名前を変更するための一貫したスキーマがある場合は、Pythonスクリプトでこれを行うことができます。Pythonの1つのメソッドはos.rename(src、dest)です。具体的な詳細は、ファイルの名前を変更するアルゴリズムが何であるかによって異なります。これは、目次のレイヤー名だけでなく、実際のファイルの名前を変更するためのものです。
それ以外の場合は、翻訳する必要があるため、手動で名前を変更する代わりの方法を知りません。理論的には、Pythonで翻訳の辞書を作成することもできますが、コードを作成するには、手動で行う場合と同じくらい時間がかかります。また、ファイル自体の名前を変更すると、データソースが破損することにも注意してください。TOC内のレイヤー名のみを変更しても問題ありませんが、ArcほどQGISに精通していません。
このプログラムを使用して、ファイルの名前をhttp://www.bulkrenameutility.co.uk/Main_Intro.phpに変更することをお勧めします。オープンで使いやすいです。ファイルの名前を変更した後、テキストエディターでqgisプロジェクトファイルを開き(notepad ++をお試しください)、同じ検索と置換を行う必要があります。