<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Parsing and converting table to .txt files in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/parsing-and-converting-table-to-txt-files/m-p/297066#M22971</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I know it has been a while, but the project scope has changed.&amp;nbsp; I modified the code below.&amp;nbsp; It works great if the data is not versioned, on the default version of the database, or in a file geodatabase.&amp;nbsp; Is there a limitation when working with a version of a sde database? For instance, a webediting version of default.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;# Orginal Code Created:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20/06/2014
# Orginal Copyright:&amp;nbsp;&amp;nbsp; (c) pschneider 2014
# Modified Code Created:&amp;nbsp; December 08, 2014
# Modified Copyright: (c) DBuehler 2015
#-------------------------------------------------------------------------------
import arcpy # Libraries to import


# CSV writing function. Seperate function that is called int the main function
def log(txt, inFile, newRun):
&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if newRun == True:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; csvFile = open(inFile, 'w')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif newRun == False:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; csvFile = open(inFile, 'a')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; csvFile.writelines(txt)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; csvFile.flush()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; csvFile.close()
&amp;nbsp;&amp;nbsp;&amp;nbsp; except IOError:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Unable to write to file ' + inFile


#Main function that creates a field array of fields, then writes the headers, and then rights matching rows and updates them
def main():
&amp;nbsp;&amp;nbsp;&amp;nbsp; inDS = r"C:\TEMP\JUNK\Testing.gdb\Testing"
&amp;nbsp;&amp;nbsp;&amp;nbsp; whereClause = r"STATUS = 'New' AND (PUBLICSTREETS = 'Damaged/Missing Street Sign' OR PUBLICSTREETS = 'Icy Intersection/Road' OR PUBLICSTREETS = 'Pothole' OR PUBLICSTREETS = 'Public Vegetation Concern')"
&amp;nbsp;&amp;nbsp;&amp;nbsp; statusField = "STATUS"
&amp;nbsp;&amp;nbsp;&amp;nbsp; logDir = r"C:\TEMP\JUNK\StreetDeptStreetIssues.csv"
&amp;nbsp;&amp;nbsp;&amp;nbsp; updateTo = "Assigned"


&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldArr = []
&amp;nbsp;&amp;nbsp;&amp;nbsp; for fld in arcpy.ListFields(inDS):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldArr.append(fld.name)
&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldArr.remove('SHAPE')
&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldArr.remove('GlobalID')
&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldArr.remove('REQUESTID')
&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldArr.remove('SOCIALLOGIN')


 # Part where the headers get written to the log directory
&amp;nbsp;&amp;nbsp;&amp;nbsp; headerLine = ""
&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in range(len(fieldArr)):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i != len(fieldArr) - 1:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; headerLine += str(fieldArr&lt;I&gt;) + ","&lt;/I&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; headerLine += str(fieldArr&lt;I&gt;) + "\n"&lt;/I&gt;


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; log(headerLine, logDir, True)


&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldxi = fieldArr.index(statusField)


&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.UpdateCursor(inDS, fieldArr, whereClause) as cursor:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in cursor:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowLine = ""
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fileWrite = ""
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in range(len(row)):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i == whereClause:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; logDir = cursor[row&lt;I&gt;]&lt;/I&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i != len(row) - 1:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowLine += str(row&lt;I&gt;) + ","&lt;/I&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowLine += str(row&lt;I&gt;) + "\n"&lt;/I&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[fieldxi] = updateTo
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cursor.updateRow(row)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; log(rowLine, logDir, False)
&amp;nbsp;&amp;nbsp;&amp;nbsp; except:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Error updating the dataset'


if __name__ == '__main__':
&amp;nbsp;&amp;nbsp;&amp;nbsp; main()&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 14:15:46 GMT</pubDate>
    <dc:creator>DavidBuehler</dc:creator>
    <dc:date>2021-12-11T14:15:46Z</dc:date>
    <item>
      <title>Parsing and converting table to .txt files</title>
      <link>https://community.esri.com/t5/python-questions/parsing-and-converting-table-to-txt-files/m-p/297062#M22967</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The setup is we currently do not have an automated work order system in place.&amp;nbsp; IT has approached me to build an internet GIS based service request application, of which the local government model template "Citizen Service Request" works for what we want it to do.&amp;nbsp; On the back end I am scripting out how to update the features from unassigned to assigned after creating some .csv/.txt files to attach to emails sent via SQL Server Business Intelligence Development Studio.&amp;nbsp; I have put together the python code below as a proof of concept before switching out the necessary items for our SDE database. This will be a stand-alone script running on the server at a regular interval (if that matters? Suggestions?).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My questions are:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1) I get it to produce an intermediate table based on if the STATUS field has the value 'Unassigned'. I would like to take it a step further and have it parse out based on request type, and the unassigned status.&amp;nbsp; Example would be: potholes, street sign damage, and debris in road to be written to one table. Sidewalk damage, weeds, and graffiti to another, and so on till I get the attachments for the group of people I need to send them to.&amp;nbsp; Is there an elegant way of doing that or do I need to have multiple table to table conversions and expressions?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2) Right now it converts that one table to a text file that can be added as an attachment in the email.&amp;nbsp; I would like to take it to the next level, which is to convert the created tables from question 1.&amp;nbsp; I would assume I could just copy the code over and over with the appropriate tables to convert, is there a better way to do that?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;3) Building on question 2, If there are no records I would like it to not clunk out because there are no records in the table to convert. I am pretty sure I need an if else or if then statement, but I am not proficient with python scripting.&amp;nbsp; Any help would appreciated.&lt;/SPAN&gt;&lt;PRE class="plain" name="code"&gt;#importing modules
import arcpy
import os
import csv

# set the workspace
arcpy.env.workspace = "F:/Home/GIS/Depts/GIS/proj/ServiceRequest/ServiceRequest.gdb"
arcpy.env.overwriteOutput = True

#setting variables
workspace = arcpy.env.workspace
fc = "/ServiceRequests"
fields = ["STATUS","REQUESTID"]
expression = arcpy.AddFieldDelimiters ("workspace", "STATUS") + " = 'Unassigned'"

print "Starting transport Captain"

#setting local variables and setting up Table to Table Conversion
inTable = "ServiceRequests"
outLocation = workspace
outTable = "Unassigned"

#Table to Table conversion

arcpy.TableToTable_conversion (inTable, outLocation, outTable, expression)

print "Table made it to destination Captain"

#updating records from unassigned to assigned
fcToUpdate = "F:/Home/GIS/Depts/GIS/proj/ServiceRequest/ServiceRequest.gdb/ServiceRequests"
affectedField = "STATUS"
oldValue =&amp;nbsp; 'Unassigned'
newValue = 'Assigned'

queryString = '"' + affectedField + '" = ' + "'" + oldValue + "'"

with arcpy.da.UpdateCursor(fcToUpdate, (affectedField,), queryString) as cursor:
&amp;nbsp;&amp;nbsp; for row in cursor:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[0] = newValue
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cursor.updateRow(row)


# Converting FileGeoDatabase Table to .TXT for emailing
print "Starting conversion GIS to CSV Captain"

table = outTable
outfile = "F:/Home/GIS/Depts/GIS/proj/ServiceRequest/Unassigned.txt"

#--first lets make a list of all of the fields in the table
fields = arcpy.ListFields(table)
field_names = [field.name for field in fields]

with open(outfile,'wb') as f:
&amp;nbsp;&amp;nbsp;&amp;nbsp; w = csv.writer(f)
&amp;nbsp;&amp;nbsp;&amp;nbsp; #--write all field names to the output file
&amp;nbsp;&amp;nbsp;&amp;nbsp; w.writerow(field_names)

&amp;nbsp;&amp;nbsp;&amp;nbsp; #--now we make the search cursor that will iterate through the rows of the table
&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in arcpy.SearchCursor(table):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; field_vals = [row.getValue(field.name) for field in fields]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; w.writerow(field_vals)
&amp;nbsp;&amp;nbsp;&amp;nbsp; del row
&amp;nbsp;&amp;nbsp;&amp;nbsp; del table
&amp;nbsp;&amp;nbsp;&amp;nbsp; del outTable

print "Mission Success Captain. Returning to Base"&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Jun 2014 14:43:25 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/parsing-and-converting-table-to-txt-files/m-p/297062#M22967</guid>
      <dc:creator>DavidBuehler</dc:creator>
      <dc:date>2014-06-18T14:43:25Z</dc:date>
    </item>
    <item>
      <title>Re: Parsing and converting table to .txt files</title>
      <link>https://community.esri.com/t5/python-questions/parsing-and-converting-table-to-txt-files/m-p/297063#M22968</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;1) You'd need something to denote the processing values to separate into which text file.&amp;nbsp; This could be a separate field, or (if you dare) hard-code your Python... but I'd only recommend the latter if your separations are static.&amp;nbsp; Assuming you have a way to separate, I'd push the separate value and their output text file to a dict, and move the process of writing the data to a separate function.&amp;nbsp; Then while processing the rows, you can specify which file they go to.&amp;nbsp; Something like:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy, os, time # you don't need os or time if you use a constant log file name (line 18)

def log(txt, inFile, newRun):
&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if newRun == True:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; csvFile = open(inFile, 'w')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif newRun == False:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; csvFile = open(inFile, 'a')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; csvFile.writelines(txt)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; csvFile.flush()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; csvFile.close()
&amp;nbsp;&amp;nbsp;&amp;nbsp; except IOError:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Unable to write to file ' + inFile

def main():
&amp;nbsp;&amp;nbsp;&amp;nbsp; inDS = r"C:\TEMP\JUNK\ServiceRequest.gdb\ServiceRequests"
&amp;nbsp;&amp;nbsp;&amp;nbsp; whereClause = r"STATUS = 'Unassigned'"
&amp;nbsp;&amp;nbsp;&amp;nbsp; statusField = "STATUS"
&amp;nbsp;&amp;nbsp;&amp;nbsp; deptField = u'DEPT_ASSIGNEE' ##determines how to separate the tables (see table separation note below)
&amp;nbsp;&amp;nbsp;&amp;nbsp; logDir = r"C:\TEMP\JUNK"
&amp;nbsp;&amp;nbsp;&amp;nbsp; updateTo = "Assigned"

&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldArr = []
&amp;nbsp;&amp;nbsp;&amp;nbsp; for fld in arcpy.ListFields(inDS):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldArr.append(fld.name)
&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldArr.remove('SHAPE')

&amp;nbsp;&amp;nbsp;&amp;nbsp; ##Table Separation Note
&amp;nbsp;&amp;nbsp;&amp;nbsp; ##Create the list of output text files (must be based on a common value) - note does not have to be a field in the data...
&amp;nbsp;&amp;nbsp;&amp;nbsp; ##you could create a dictionary to hold these values in code, but doing so would cause the code to go stale upon new unbeforeseen values
&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.SearchCursor(inDS,fieldArr) as sc:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fileStore = {}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for scr in sc:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for j in range(len(scr)):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if j == fieldArr.index(deptField) and &lt;J&gt; not in fileStore.keys():
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fileStore[scr&lt;J&gt;] = logDir + os.sep + time.strftime('%Y%m%d', time.localtime(time.time())) + str(scr&lt;J&gt;) + '.csv'

&amp;nbsp;&amp;nbsp;&amp;nbsp; headerLine = ""
&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in range(len(fieldArr)):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i != len(fieldArr) - 1:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; headerLine += str(fieldArr&lt;I&gt;) + ","
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; headerLine += str(fieldArr&lt;I&gt;) + "\n"

&amp;nbsp;&amp;nbsp;&amp;nbsp; for k,v in fileStore.iteritems():
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; log(headerLine, v, True)

&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldxi = fieldArr.index(statusField)
&amp;nbsp;&amp;nbsp;&amp;nbsp; sepxi = fieldArr.index(deptField)

&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.UpdateCursor(inDS, fieldArr, whereClause) as cursor:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in cursor:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowLine = ""
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fileWrite = ""
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in range(len(row)):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i == sepxi:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fileWrite = fileStore[row&lt;I&gt;]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i != len(row) - 1:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowLine += str(row&lt;I&gt;) + ","
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowLine += str(row&lt;I&gt;) + "\n"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[fieldxi] = updateTo
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cursor.updateRow(row)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; log(rowLine, fileWrite, False)
&amp;nbsp;&amp;nbsp;&amp;nbsp; except:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Error updating the dataset'

if __name__ == '__main__':
&amp;nbsp;&amp;nbsp;&amp;nbsp; main()&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/J&gt;&lt;/J&gt;&lt;/J&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2) The &lt;/SPAN&gt;&lt;A href="https://docs.python.org/3/library/smtplib.html" rel="nofollow noopener noreferrer" target="_blank"&gt;smtplib&lt;/A&gt;&lt;SPAN&gt; module should be able to assist you with sending email as attachments.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;3) Using a &lt;/SPAN&gt;&lt;A href="https://docs.python.org/2/tutorial/errors.html" rel="nofollow noopener noreferrer" target="_blank"&gt;try/except&lt;/A&gt;&lt;SPAN&gt; is considered good practice for error handling you should add in anyhow; to expand this you could add an if statement with a break to exit a segment of code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Good Luck&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 14:15:43 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/parsing-and-converting-table-to-txt-files/m-p/297063#M22968</guid>
      <dc:creator>PaulSchneider</dc:creator>
      <dc:date>2021-12-11T14:15:43Z</dc:date>
    </item>
    <item>
      <title>Re: Parsing and converting table to .txt files</title>
      <link>https://community.esri.com/t5/python-questions/parsing-and-converting-table-to-txt-files/m-p/297064#M22969</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks Paul.&amp;nbsp; This definitely helps and thanks for the links.&amp;nbsp; We'll see where this project goes from here. I am sure it will morph from the initial request.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Jun 2014 12:34:39 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/parsing-and-converting-table-to-txt-files/m-p/297064#M22969</guid>
      <dc:creator>DavidBuehler</dc:creator>
      <dc:date>2014-06-25T12:34:39Z</dc:date>
    </item>
    <item>
      <title>Re: Parsing and converting table to .txt files</title>
      <link>https://community.esri.com/t5/python-questions/parsing-and-converting-table-to-txt-files/m-p/297065#M22970</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;After meeting with departments, and compiling their feedback.&amp;nbsp; What in the code above would need to be modified so that it runs against a single department, and writes to already created file? Basically, we do not want to spam our departments, nor override all the files at the same time especially if their is no new request.&amp;nbsp; We are thinking of using triggers on the database to run the script against a new entry, and immediately notify that a department.&amp;nbsp; Any issues with that?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Dec 2014 22:12:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/parsing-and-converting-table-to-txt-files/m-p/297065#M22970</guid>
      <dc:creator>DavidBuehler</dc:creator>
      <dc:date>2014-12-03T22:12:02Z</dc:date>
    </item>
    <item>
      <title>Re: Parsing and converting table to .txt files</title>
      <link>https://community.esri.com/t5/python-questions/parsing-and-converting-table-to-txt-files/m-p/297066#M22971</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I know it has been a while, but the project scope has changed.&amp;nbsp; I modified the code below.&amp;nbsp; It works great if the data is not versioned, on the default version of the database, or in a file geodatabase.&amp;nbsp; Is there a limitation when working with a version of a sde database? For instance, a webediting version of default.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;# Orginal Code Created:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20/06/2014
# Orginal Copyright:&amp;nbsp;&amp;nbsp; (c) pschneider 2014
# Modified Code Created:&amp;nbsp; December 08, 2014
# Modified Copyright: (c) DBuehler 2015
#-------------------------------------------------------------------------------
import arcpy # Libraries to import


# CSV writing function. Seperate function that is called int the main function
def log(txt, inFile, newRun):
&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if newRun == True:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; csvFile = open(inFile, 'w')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif newRun == False:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; csvFile = open(inFile, 'a')
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; csvFile.writelines(txt)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; csvFile.flush()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; csvFile.close()
&amp;nbsp;&amp;nbsp;&amp;nbsp; except IOError:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Unable to write to file ' + inFile


#Main function that creates a field array of fields, then writes the headers, and then rights matching rows and updates them
def main():
&amp;nbsp;&amp;nbsp;&amp;nbsp; inDS = r"C:\TEMP\JUNK\Testing.gdb\Testing"
&amp;nbsp;&amp;nbsp;&amp;nbsp; whereClause = r"STATUS = 'New' AND (PUBLICSTREETS = 'Damaged/Missing Street Sign' OR PUBLICSTREETS = 'Icy Intersection/Road' OR PUBLICSTREETS = 'Pothole' OR PUBLICSTREETS = 'Public Vegetation Concern')"
&amp;nbsp;&amp;nbsp;&amp;nbsp; statusField = "STATUS"
&amp;nbsp;&amp;nbsp;&amp;nbsp; logDir = r"C:\TEMP\JUNK\StreetDeptStreetIssues.csv"
&amp;nbsp;&amp;nbsp;&amp;nbsp; updateTo = "Assigned"


&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldArr = []
&amp;nbsp;&amp;nbsp;&amp;nbsp; for fld in arcpy.ListFields(inDS):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldArr.append(fld.name)
&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldArr.remove('SHAPE')
&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldArr.remove('GlobalID')
&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldArr.remove('REQUESTID')
&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldArr.remove('SOCIALLOGIN')


 # Part where the headers get written to the log directory
&amp;nbsp;&amp;nbsp;&amp;nbsp; headerLine = ""
&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in range(len(fieldArr)):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i != len(fieldArr) - 1:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; headerLine += str(fieldArr&lt;I&gt;) + ","&lt;/I&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; headerLine += str(fieldArr&lt;I&gt;) + "\n"&lt;/I&gt;


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; log(headerLine, logDir, True)


&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldxi = fieldArr.index(statusField)


&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.UpdateCursor(inDS, fieldArr, whereClause) as cursor:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in cursor:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowLine = ""
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fileWrite = ""
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for i in range(len(row)):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i == whereClause:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; logDir = cursor[row&lt;I&gt;]&lt;/I&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i != len(row) - 1:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowLine += str(row&lt;I&gt;) + ","&lt;/I&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rowLine += str(row&lt;I&gt;) + "\n"&lt;/I&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[fieldxi] = updateTo
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cursor.updateRow(row)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; log(rowLine, logDir, False)
&amp;nbsp;&amp;nbsp;&amp;nbsp; except:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Error updating the dataset'


if __name__ == '__main__':
&amp;nbsp;&amp;nbsp;&amp;nbsp; main()&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 14:15:46 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/parsing-and-converting-table-to-txt-files/m-p/297066#M22971</guid>
      <dc:creator>DavidBuehler</dc:creator>
      <dc:date>2021-12-11T14:15:46Z</dc:date>
    </item>
    <item>
      <title>Re: Parsing and converting table to .txt files</title>
      <link>https://community.esri.com/t5/python-questions/parsing-and-converting-table-to-txt-files/m-p/297067#M22972</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Scoping it inside an edit session will likely be your ticket here.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## CREATE VERSIONED EDIT SESSION
&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.Editor(gisConn) as edit:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edit.startEditing(True, True) #see the Help; multi-user mode
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edit.startOperation()

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Do work

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## STOP EDITING
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edit.stopOperation()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edit.stopEditing(True) # True saves edits&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 14:15:48 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/parsing-and-converting-table-to-txt-files/m-p/297067#M22972</guid>
      <dc:creator>PaulSchneider</dc:creator>
      <dc:date>2021-12-11T14:15:48Z</dc:date>
    </item>
  </channel>
</rss>

