कैसे पायथन में दोनों डेटासेट के बीच मतभेदों को खोजने के लिए?

वोट
0

यह स्क्रिप्ट अंतर के लिए दो अलग-अलग Excel फ़ाइलों की तुलना और फिर जोड़ और नई तालिकाओं के लिए विलोपन लिखने के लिए है। Meter_No क्षेत्र मैं कैसे पंक्ति की पहचान कर रहा हूँ है। मैं इस स्क्रिप्ट एक उत्पादन का उत्पादन करने के लिए मिल गया है, लेकिन केवल जानकारी निहित क्षेत्र मैं खोज रहा हूँ के लिए है। मैं क्यों यह हो रहा है से अच्छी तरह परिचित हूँ, लेकिन सही फिक्स को समझ नहीं सकता। मैं अंतिम आउटपुट में जानकारी की एक पूरी पंक्ति चाहते हैं, अन्य क्षेत्रों सहित।

मैं तारांकन उपयोग करने के लिए खोज कर्सर में सभी क्षेत्रों वापस जाने के लिए पता है, लेकिन मैं Meter_No क्षेत्र के लिए खोज अपने आप में लागू करना चाहते हैं। मैंने कहीं सोच रहा हूँ में पाश के लिए है, जहां मैं यह करने के लिए की जरूरत है। किसी भी सहायता की सराहना की जाएगी।

इसके अलावा, मैं अजगर करने के लिए नया हूँ तो मैं क्या arcpy पुस्तकालय में निहित है पर कायम करना चाहते हैं। मैं जानता हूँ कि इस स्क्रिप्ट इष्टतम नहीं है, लेकिन यह एक तरीका है कि मैं समझ सकता में है।

आयात मॉड्यूल

import arcpy
arcpy.env.workspace = rM:\GISTransfer\BOD_Round_Project\Relaunch
arcpy.env.overwriteOutput = True

print(modules imported)

सेट चर

newXLSX = rM:\GISTransfer\BOD_Round_Project\Relaunch\Source_Data_TEST_copy.xlsx
oldXLSX = rM:\GISTransfer\BOD_Round_Project\Relaunch\Source_Data.xlsx
fld = [Meter_No]
newList = []
oldList = []
addList = []
delList = []

print(variables set)

तालिकाओं के लिए एक्सेल फ़ाइलें कनवर्ट

arcpy.ExcelToTable_conversion(newXLSX,newTB.dbf)
arcpy.ExcelToTable_conversion(oldXLSX,oldTB.dbf)

newDBF = rM:\GISTransfer\BOD_Round_Project\Relaunch\newTB.dbf
oldDBF = rM:\GISTransfer\BOD_Round_Project\Relaunch\oldTB.dbf

print(tables created)

पहले खोज कर्सर नई एक्सेल फ़ाइल को स्कैन करने के लिए

with arcpy.da.SearchCursor(newDBF, fld) as newCursor:
    for row in newCursor:
        newList.append(row)

दूसरी खोज कर्सर वर्ष एक्सेल फ़ाइल को स्कैन करने के लिए

with arcpy.da.SearchCursor(oldDBF, fld) as oldCursor:
    for row in oldCursor:
        oldList.append(row)

print(searches complete)

दोनों के बीच अंतर खोजने

for a in newList:
    if a not in oldList:
        addList.append(a)

for d in oldList:
    if d not in newList:
        delList.append(d)

print(differences identified)

के लिए परिणाम संलग्न करने के लिए नया टेबल बना

arcpy.CreateTable_management(M:\GISTransfer\BOD_Round_Project\Relaunch, Additions.dbf, newDBF)
arcpy.CreateTable_management(M:\GISTransfer\BOD_Round_Project\Relaunch, Deletions.dbf, oldDBF)

with arcpy.da.InsertCursor(Additions.dbf, fld) as addCursor:
    for add in addList:
        addCursor.insertRow(add)

with arcpy.da.InsertCursor(Deletions.dbf, fld) as deLCursor:
    for deL in delList:
        deLCursor.insertRow(deL)

print(results appended)
print(script complete)
14/02/2020 को 00:04
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more