OK this is the FINAL SCRIPT... I cant thank you all enough for you help...
- Reads through a Folder looking for CSV or txt files
- Reads through each CSV file
- Splits the comma delinted CSV file and write all the vales to variables
- A couple functions are called to process a couple of the variables to create new values for calculated fields that exist in the Feature Class but NOT the CSV file
- An if than statement populates a new field BearID based on a value from another field and adds this to the insert.
- Each row is inserted into the Feature Class
- Once completed the txt/csv files are moved to another folder for backup
import arcpy
import datetime
import os, fnmatch
import shutil
def getdate(Hour, Minute):
return datetime.datetime.strptime(str(Hour).zfill(2) + ' ' + str(Minute).zfill(2), '%H %M')
def findFiles (path, filter):
for root, dirs, files in os.walk(path):
for file in fnmatch.filter(files, filter):
yield os.path.join(root, file)
fc = r'C:\Users\tjv36463\Desktop\BearCollar\BearLocationImports.gdb\BearCollar'
cursor = arcpy.da.InsertCursor (fc,["CollarSeri", "Year", "Julianday", "Hour", "Minute",
"Activity", "Temperatur", "Latitude", "Longitude", "HDOP", "NumSats", "FixTime",
"Date", "_2D_3D", "BearID", "CalcDate", "CalcDate3", "FileName", "SHAPE@XY"])
for textFile in findFiles(r'C:/Users/tjv36463/Desktop/BearCollar/NewFiles/', '*.txt'):
count = 0
for ln in open (textFile, 'r').readlines():
if count > 0:
lineSplit = ln.split(",")
CollarSeri = long(lineSplit[0])
Year = str(lineSplit[1])
Julianday = str(lineSplit[2])
Hour = int(lineSplit[3])
Minute = int(lineSplit[4])
Activity = int(lineSplit[5])
Temperature = int(lineSplit[6])
Latitude = float(lineSplit[7])
Longitude = float(lineSplit[8])
HDOP = str(lineSplit[9])
NumSats = int(lineSplit[10])
FixTime = int(lineSplit[11])
_2D_3D = int(lineSplit[12])
Date = str(lineSplit[13])
getTime = getdate(Hour, Minute)
getTime2 = str(getTime)
getTime3 = getTime2[-8:]
getDateTime = (Date + getTime3)
FileName = str(textFile)
if CollarSeri == 32488:
BearID = "1"
else:
if CollarSeri == 32491:
BearID = "2"
else:
if CollarSeri == 32495:
BearID = "3"
else:
if CollarSeri == 32498:
BearID = "4"
else:
if CollarSeri == 32500:
BearID = "5"
else:
if CollarSeri == 32502:
BearID = "6"
else:
if CollarSeri == 32501:
BearID = "7"
else:
if CollarSeri == 33108:
BearID = "8"
else:
if CollarSeri == 32499:
BearID = "9"
else:
if CollarSeri == 32488:
BearID = "10"
else:
if CollarSeri == 32496:
BearID = "11"
else:
BearID = "0"
shapeVal = (Longitude, Latitude)
cursor.insertRow ([CollarSeri, Year, Julianday, Hour, Minute, Activity,
Temperature, Latitude, Longitude, HDOP, NumSats, FixTime, Date,
_2D_3D, BearID, getTime3, getDateTime, FileName, shapeVal])
count += 1
del cursor
dir_src = "C:\\users\\tjv36463\\Desktop\\BearCollar\\NewFiles\\"
dir_dst = "C:\\users\\tjv36463\\Desktop\\BearCollar\\MovedFiles\\"
for file in os.listdir(dir_src):
src_file = os.path.join(dir_src, file)
dst_file = os.path.join(dir_dst, file)
shutil.move(src_file, dst_file)
print ("Processing Finished")