أكثر

لا يمكن تسلسل str وكائنات القائمة

لا يمكن تسلسل str وكائنات القائمة


أحاول إعادة تسمية مجموعة من البيانات النقطية إلى "I1986_" + [الأحرف الثلاثة الأولى من خطوط المسح]. على سبيل المثال ، إذا تم تسمية البيانات النقطية "Raster1" ، فسيكون الناتج "I1986_Ras".

لقد حاولت تضمين وظائف str () في مكانين بالإضافة إلى الانضمام إلى معلمة بيانات الأداة ولكن انتهى الأمر بتوليد أخطاء أخرى. إذا لم أستخدم متغير rList في وظيفة Rename واستخدمت متغير البيانات النقطية بدلاً من ذلك ، فسيعيد البرنامج النصي تسمية الملف الأول في الدليل ولكن بعد ذلك يقول إن i1986_xxx موجود بالفعل. أيه أفكار؟

arcpy.env.workspace = DIRECTORY rList = arcpy.ListRasters () للنقطيات في rList: arcpy.Rename_management (rList، "I1986_" + rList [0: 3])

أعتقد أنك تريد شيئًا مثل أدناه. rList هي قائمة. سيتسلسل مع سلسلة ، ولكن ليس كما تتوقع.

>>> l1 = ['cat'، 'dog'، 'mouse'، 'monkey'، 'elephant'] >>> 'I1986_' + str (l1 [0: 3]) "I1986 _ ['cat'، ' كلب '،' فأر '] "

تنشئ Python تمثيلاً سلسلة للعناصر الثلاثة الأولى في القائمة. هذا هو سبب نجاح التكرار الأول ، ولكن بعد ذلك يفشل التكرار التالي ويبلغ عن وجود الكائن بالفعل. سيؤدي هذا إلى إعادة تسمية جميع الكائنات الخاصة بك إلى نفس الاسم.

أنت تقوم بالفعل بالتكرار عبر القائمة ، لذا استخدم متغير التكرار للتسلسل مع عناصر القائمة.

للنقطية في rList: newName = 'I1986 _ {}'. تنسيق (نقطية [0: 3]) arcpy.Rename_management (raster، newName)