私は、シェープファイルをディレクトリに書き込んでから、それらをマージする一般的なスクリプトを書いています。ファイルを出力フォルダーに書き込んだ後、saga:mergeshapeslayersアルゴリズムを使用して、出力フォルダー内のすべてのファイルをマージしようとしています。私はモデルビルダーを使用しましたが、ある程度は役立ちますが、特定の目的で使用されているのに対して、一般的な目的でスクリプトを作成しようとしています。
コード:
##Test=name
##Select_folder=folder
##Result=output vector
import os
import glob
path_1 = Select_folder
path = path_1
os.chdir(path)
def function():
output = glob.glob(path_1 + './*.shp')
x = 0
while output[x]:
for fname in glob.glob("*.shp"):
outputs_1 = processing.runandload("qgis:fieldcalculator", output[x], 'Number', 1, 10, 0, True, 1 , "C:\Users\Me\Desktop\Output\\" + fname)
multiple_0 = glob.glob("*.shp")
x = x + 1
if x + 1 > len(output):
processing.runalg("saga:mergeshapeslayers", output[0], ";".join(multiple_0) , Result)
break
else:
continue
if path_1:
function()
else:
pass
@geneと謝罪に感謝し、うまくいけばより良く見えるようにコードを編集しました。私の限られた理解では、違いは
—
ジョセフ
glob.glob(path_1 + './*.shp')
.shpファイルの場所を定義することです。そして、glob.glob("*.shp")
の.shpファイルのファイル名を取得します。間違えたら訂正してください。
私が何を望んでいるかをより明確にするために:特定のフォルダーから "C:\ Users \ Me \ Desktop \ Output \\"にシェープファイルを書き込むことができます。次に、saga:mergeshapeslayersでその出力フォルダー内のすべてのファイルをマージします。マージアルゴリズムのコードが正しくなく、解決策を知りたい。
—
ジョセフ
Z
ですか。function(Z)
それが何も返さない場合、サーブは何をしますか?違いは何であるglob.glob(Z + './*.shp')
とはglob.glob("*.shp")
?