: nimi 'B' pole selle skripti käitamisel määratletud. Miks pole minu "B" määratletud ja kas see on süntaksiviga? Selguse huvides proovin koodi hankida ..." /> : nimi 'B' pole selle skripti käitamisel määratletud. Miks pole minu "B" määratletud ja kas see on süntaksiviga? Selguse huvides proovin koodi hankida ..." />
Veel

Kuidas saada Pythoni skriptis viga 'erandid.NameError?

Kuidas saada Pythoni skriptis viga 'erandid.NameError?


Ma saan: nimi 'B' pole määratletudkui ma seda skripti käitan.

Miks pole minu "B" määratletud ja kas see on süntaksiviga?

Selguse huvides üritan koodi viia läbi kausta " Minu dokumendid ArcGIS ..." konkreetsete kuju failide kaudu ja kopeerida need kausta "Minu dokumendid Uus kaust ". Muutuja A tähistab loendit konkreetsed vormifailid, mida soovin kaustast uude kopeerida; mul on probleemiks B määratlemine, kus A-st pärit muutuja nimi kantakse / loetakse koodi mis tahes osas automaatselt üle. Püüan Arc'ile öelda, et iga kord, kui ta näeb "+ STATE +" (mida tuleks vaadelda kui B: põhiküsimus), peab ta sisestama A-s loetletud konkreetse muutuja nime, töötlema selle (antud juhul koopia) ja seejärel tagasi loopima järgmise määratud muutujani, kuni see jõuab loendi lõppu.

Soovin kopeerida saidi 'FL_RechargeArea' läbi 'GA_AreaofContribution' failifailid kaustast " Minu dokumendid ArcGIS ..." kausta " Minu dokumendid NewFolder ..." ja saavad selle salvestada nimega '(specific-varialbe-name) 2.shp'.

See on palju vähem kopeerimisest ja rohkem sellest, kuidas saaks kaustas kindlaid shapefile-nimesid läbi vaadata ja töödelda, selle asemel, et kogu kaustas olev loend läbi loopida ja töödelda.

# Impordi arcpy moodul, impordi A jaoks A rühmas B: # Kohalikud muutujad: A = ['FL_RechargeArea', 'FL_AquiferProtectionArea', 'FL_AreaofContribution', 'GA_RechargeArea', 'GA_AquiferProtectionArea', 'GA_AreaofContribution'] B = "STATE"  My Documents  ArcGIS  "+ STATE +". Shp "Output_from_New_Shapefile ="  My Documents  NewFolder  "+ STATE +" 2.shp "# Protsess: funktsioonide kopeerimine arcpy.CopyFeatures_management (New_Shapefile , Output_from_New_Shapefile, "", "0", "0", "0")

Te viitate muutujatele, alustades oma koodis üksuste kordamist enne muutujate deklareerimist.

Õige süntaks oleks:

#Import arcpy mooduli importimine arcpy # Kohalikud muutujad: A = ['FL_RechargeArea', 'FL_AquiferProtectionArea', 'FL_AreaofContribution', 'GA_RechargeArea', 'GA_AquiferProtectionArea', 'GA_AreaofContribution'] B = "STATE" Minu_Shap "Uus_Shap" Dokumendid  ArcGIS  "+ STATE +". Shp "Output_from_New_Shapefile ="  Minu dokumendid  NewFolder  "+ STATE +" 2.shp "A-le B-s: # Protsess: Kopeerimisfunktsioonid arcpy.CopyFeatures_management (New_Shapefile , Output_from_New_Shapefile, "", "0", "0", "0")

Teine asi on see, et soovite oma muutujale anda mõistlikud nimed. Palun lugege Pythoni PEP-8 stiilijuhendit.

Teie skript ei kopeeri aga muutujaid a ja b kasutades ühtegi shapefaili, kuna te ei kasuta neid koodis. Tõenäoliselt soovite väljundi shapefile nimesse muutujate väärtuste sisestamiseks kasutada meetodit str.format (). Otsige mõnda näidet str.format () koodi kasutamise kohta siit ja Esri spikrist.


Vaata videot: Kompilasi Striptis cewek indonesia di instagram