Viac

Prevádzanie csv na dbf

Prevádzanie csv na dbf


Mám CSV vytvorený v Pythone, ktorý sa snažím zmeniť na dbf, ale nástroj na konverziu TABLE TO TABLE sa zle číta. Vyberiem csv, nastavím výstup na XXX.dbf, ale výstup má 1 pole. Obsahuje počet riadkov, ktoré potrebujem, ale hodnoty každého riadka sú údaje oddelené čiarkami. Nemám medzery ani špeciálne znaky.

Arcgis 10.1

Tu je PYTHON použitý na vytvorenie tabuľky. Toto je prvýkrát, čo používam zapisovač CSV; možno to implementujem nesprávne, aby som nakŕmil dbf.

#Tento skript hľadá v definovanom priečinku súbory tvarov a vytvára začiatky slovníka údajov. # Autor: David Campbell # Dátum: 12. marca 2015 import arcpy, os, sys, csv, datetime, time from arcpy import env print 'Start @' + datetime.datetime.fromtimestamp (time.time ()). Strftime (' %H:%M:%S ') ################# Uživatelské hodnoty ################ projekt =' P747 'TSA_Table =' TSA_LB_V2 'CLS_Table = „CLS_LB_V2“ MDL_Table = „MDL_LB_V2“ ARIS_Table = "C:  Users  david  AppData  Roaming  ESRI  Desktop10.1  ArcCatalog  TFC.sde " Project_DB = "C:  Users  david  AppData   Roaming  ESRI  Desktop10.1  ArcCatalog  P747.sde  "ORA = 'ORATFC01' ############################ ################# otvorené (os.path.join (FolderLocation, "DD.csv"), "w") FCView = FolderLocation + " FCView.lyr" env.workspace = FolderLocation SDELOC = SDELokální, pokud arcpy.Exists (FolderLocation + " DD.csv"): arcpy.Delete_management (FolderLocation + " DD.csv ") # if arcpy.Exists (SDELOC +" DD_Table ") == False: # print" Tabuľka SDE neexistuje ", ak arcpy.Exists (SDELOC +" DD_Table "): arcpy.Delete_management (SDELOC +" DD_Table ") if arcpy.Exists (SDELOC +" DD_Table ") == True: print" True "sys.exit () a =" ID, PROJECT_NO, DATA_NAME, DATA_TYPE, DATA_LOCATION, SOURCE_CONTACT_NAME, PROJECTION, DATUM, UNITS, DATA_PRECISION, TOLERANCE , SCALE_OF_CAPTURE, GENERATION_ORIGIN, FEATURE_DESC, COLUMN_NAME, FLDTYPE_NAME, COLUMN_WIDTH, COLUMN_DECIMAL, COLUMN_DESC "csvfile_Table_Location +"  DD.csv "ableSend, , RSA_Table] #SDETable = ['TSA_LB_V2', 'CLS_LB_V2', 'MDL_LB_V2', 'ARIS_V5', 'RSABLKS_V5', 'AVI_ATTR_V2'] x = 1 pre r v arcpy.ListFiles ("*. Shc"): .Existuje (FCView): arcpy.Delete_management (FCView) arcpy.MakeTableView_management (r, FCView) polia = arcpy.ListFields (r) desc = arcpy. Popis (r) pre pole v poliach: FN = názov poľa. NázovString = str ( x) + "," + projekt + "," + r + "," + desc.shapeType + "," + FolderLocation + "," + "," + desc.spatialReference.name + "," + desc.spatialReference.GCS.datumName + "," + "Meters" + "," + " , " +", " +", " +", " +", " + FN +", " + typ poľa + +," + str (dĺžka poľa) + "," + str (presnosť poľa.) if field.type in ('String', 'SmallInteger'): UniqueValues ​​= sorted (set ([XX [0] for XX in arcpy.da.SearchCursor (FCView, FN)])) if int (len (UniqueValues)) > = LargestNumberForUniqueValues: b = DataString + ", hodnoty premenných" allrows.append (b) x + = 1 if int (len (UniqueValues))  = LargestNumberForUniqueValues: f = ORASDEString + ", Variable values" allrows.append (f) x + = 1 if int (len (UniqueValues2)) 

Na začiatku a na konci každého riadku máte úvodzovky a nič medzi nimi, takže ArcGIS interpretuje každý riadok ako jedno textové pole. Odstráňte úvodzovky a mali by ste byť v poriadku pri čítaní súboru.

V opačnom prípade, ak chcete programové riešenie na vytvorenie súboru DBF, pozrite sa na Python dbfmodul na zápis súboru DBF. Použitímdbf.from_csvrýchlo skonvertuje CSV na súbor DBF v pamäti

tabuľka = dbf.from_csv (cesta)

Alebo napíšte priamo do súboru pomocou súborunázov súboruparameter

dbf.from_csv (cesta, "out_path.dbf")

Je nepravdepodobné, že by ste robili presne to, čo chcete, pretože sa predpokladá, že prvý riadok súboru CSV nie sú hlavičky, ale skôr údaje, a že všetky polia sú reťazcové polia. Pokiaľ ide o niečo komplexnejšie, mali by ste pracovať so vstavaným jazykom Python csvmodul na čítanie údajov a zadanie formátu tabuľky sami pred zápisom údajov.


Jednou z možností by bolo otvoriť súbor .csv v programe Excel alebo v niečom podobnom, uložiť ho pomocou oddelených polí a potom znova otvoriť v programe ArcMap. Dúfajme, že vaše polia v tabuľke .dbf by mali byť oddelené


Pozri si video: R-OTE Training Session 2 Polyxo CSV Analysis Part 2