<?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: Python script modification in Geoprocessing Questions</title>
    <link>https://community.esri.com/t5/geoprocessing-questions/python-script-modification/m-p/208648#M7100</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Randall,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I didn't see a script attached to your post, but you can try adding the below code to your script:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import csv, os

table = r"C:\temp\python\XY.csv"
outFile = r"C:\temp\python\XY_1.csv"
outFile2 = r"C:\temp\python\XY_2.csv"

#read lines of CSV
f = open(table, "r")
lines=f.readlines()
lines=lines[1:]

f.close()

#write all lines except header to CSV
f = open(table, "w+")
for line in lines:
&amp;nbsp;&amp;nbsp;&amp;nbsp; f.write(line)

f.close()

#remove first column
with open(table,"r") as input:
&amp;nbsp;&amp;nbsp;&amp;nbsp; with open(outFile,"w+") as output:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer=csv.writer(output)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in csv.reader(input):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.writerow(row[1:])

#remove empty rows
input = open(outFile, 'rb')
output = open(outFile2, 'wb')
writer = csv.writer(output)
for row in csv.reader(input):
&amp;nbsp;&amp;nbsp;&amp;nbsp; if row:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.writerow(row)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
input.close()
output.close()

os.remove(table)
os.remove(outFile)

#rename to original CSV
os.rename(outFile2, table)

print "Finished"&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The 'table' variable is your original CSV file.&amp;nbsp; 'outFile' and 'outFile2' do not need to exist; these will be created on the fly.&amp;nbsp; Also, this code assumes the FID field is the first column in your CSV file.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For some reason, after removing the first column the output CSV file contained an empty row between each row.&amp;nbsp; That is why there is code to remove empty rows.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 10:18:14 GMT</pubDate>
    <dc:creator>JakeSkinner</dc:creator>
    <dc:date>2021-12-11T10:18:14Z</dc:date>
    <item>
      <title>Python script modification</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/python-script-modification/m-p/208647#M7099</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Can someone please help me modify this script?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It basically out puts a table to CSV, which i am liking immensely, but what i would love if there is a way to modify it so that when the CSV is made it gets rid of the Header and the drops the FID field&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Randall Clark, GISP&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;GIS Manager &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;InDepth Corporation&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Nov 2012 19:01:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/python-script-modification/m-p/208647#M7099</guid>
      <dc:creator>RandallClark1</dc:creator>
      <dc:date>2012-11-28T19:01:44Z</dc:date>
    </item>
    <item>
      <title>Re: Python script modification</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/python-script-modification/m-p/208648#M7100</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Randall,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I didn't see a script attached to your post, but you can try adding the below code to your script:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import csv, os

table = r"C:\temp\python\XY.csv"
outFile = r"C:\temp\python\XY_1.csv"
outFile2 = r"C:\temp\python\XY_2.csv"

#read lines of CSV
f = open(table, "r")
lines=f.readlines()
lines=lines[1:]

f.close()

#write all lines except header to CSV
f = open(table, "w+")
for line in lines:
&amp;nbsp;&amp;nbsp;&amp;nbsp; f.write(line)

f.close()

#remove first column
with open(table,"r") as input:
&amp;nbsp;&amp;nbsp;&amp;nbsp; with open(outFile,"w+") as output:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer=csv.writer(output)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in csv.reader(input):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.writerow(row[1:])

#remove empty rows
input = open(outFile, 'rb')
output = open(outFile2, 'wb')
writer = csv.writer(output)
for row in csv.reader(input):
&amp;nbsp;&amp;nbsp;&amp;nbsp; if row:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.writerow(row)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
input.close()
output.close()

os.remove(table)
os.remove(outFile)

#rename to original CSV
os.rename(outFile2, table)

print "Finished"&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The 'table' variable is your original CSV file.&amp;nbsp; 'outFile' and 'outFile2' do not need to exist; these will be created on the fly.&amp;nbsp; Also, this code assumes the FID field is the first column in your CSV file.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For some reason, after removing the first column the output CSV file contained an empty row between each row.&amp;nbsp; That is why there is code to remove empty rows.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 10:18:14 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/python-script-modification/m-p/208648#M7100</guid>
      <dc:creator>JakeSkinner</dc:creator>
      <dc:date>2021-12-11T10:18:14Z</dc:date>
    </item>
    <item>
      <title>Re: Python script modification</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/python-script-modification/m-p/208649#M7101</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;So here is the original &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;# -*- coding: utf-8 -*-
"""
&amp;nbsp;&amp;nbsp; This script will convert a table to an excel spreadsheet. If the third-party
&amp;nbsp;&amp;nbsp; module xlwt is available, it will use that. Otherwise, it will fall back to
&amp;nbsp;&amp;nbsp; CSV.
"""
import arcgisscripting
import os

gp = arcgisscripting.create(9.3)

def header_and_iterator(dataset_name):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Returns a list of column names and an iterator over the same columns"""

&amp;nbsp;&amp;nbsp;&amp;nbsp; data_description = gp.Describe(dataset_name)
&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldnames = [f.name for f in data_description.fields if f.type not in ["Geometry", "Raster", "Blob"]]
&amp;nbsp;&amp;nbsp;&amp;nbsp; def iterator_for_feature():
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cursor = gp.SearchCursor(dataset_name)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row = cursor.next()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while row:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; yield [getattr(row, col) for col in fieldnames]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row = cursor.next()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; del row, cursor
&amp;nbsp;&amp;nbsp;&amp;nbsp; return fieldnames, iterator_for_feature()

def export_to_csv(dataset, output):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Output the data to a CSV file"""
&amp;nbsp;&amp;nbsp;&amp;nbsp; import csv

&amp;nbsp;&amp;nbsp;&amp;nbsp; def _encode(x):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if isinstance(x, unicode):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return x.encode("utf-8")
&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; return str(x)

&amp;nbsp;&amp;nbsp;&amp;nbsp; def _encodeHeader(x):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return _encode(x.replace(".","_"))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; out_writer = csv.writer(open(output, 'wb'))
&amp;nbsp;&amp;nbsp;&amp;nbsp; header, rows = header_and_iterator(dataset)
&amp;nbsp;&amp;nbsp;&amp;nbsp; out_writer.writerow(map(_encodeHeader, header))
&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out_writer.writerow(map(_encode, row))

def export_to_xls(dataset, output):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """
&amp;nbsp;&amp;nbsp;&amp;nbsp; Attempt to output to an XLS file. If xmlwt is not available, fall back
&amp;nbsp;&amp;nbsp;&amp;nbsp; to CSV.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; XLWT can be downloaded from http://pypi.python.org/pypi/xlwt"""
&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; import xlwt
&amp;nbsp;&amp;nbsp;&amp;nbsp; except ImportError:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.AddError("import of xlwt module failed")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return
&amp;nbsp;&amp;nbsp;&amp;nbsp; header, rows = header_and_iterator(dataset)

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Make spreadsheet
&amp;nbsp;&amp;nbsp;&amp;nbsp; workbook = xlwt.Workbook()
&amp;nbsp;&amp;nbsp;&amp;nbsp; worksheet = workbook.add_sheet(os.path.split(dataset)[1])

&amp;nbsp;&amp;nbsp;&amp;nbsp; #Set up header row, freeze panes
&amp;nbsp;&amp;nbsp;&amp;nbsp; header_style = xlwt.easyxf("font: bold on; align: horiz center")
&amp;nbsp;&amp;nbsp;&amp;nbsp; for index, colheader in enumerate(header):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; worksheet.write(0, index, colheader.replace(".","_"))
&amp;nbsp;&amp;nbsp;&amp;nbsp; worksheet.set_panes_frozen(True)
&amp;nbsp;&amp;nbsp;&amp;nbsp; worksheet.set_horz_split_pos(1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; worksheet.set_remove_splits(True)

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Write rows
&amp;nbsp;&amp;nbsp;&amp;nbsp; for rowidx, row in enumerate(rows):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for colindex, col in enumerate(row):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; worksheet.write(rowidx+1, colindex, col)

&amp;nbsp;&amp;nbsp;&amp;nbsp; # All done
&amp;nbsp;&amp;nbsp;&amp;nbsp; workbook.save(output)
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
if __name__ == "__main__":
&amp;nbsp;&amp;nbsp;&amp;nbsp; dataset_name = gp.GetParameterAsText(0)
&amp;nbsp;&amp;nbsp;&amp;nbsp; output_file = gp.GetParameterAsText(1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; format = gp.GetParameterAsText(2)
&amp;nbsp;&amp;nbsp;&amp;nbsp; if format == "CSV":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; export_to_csv(dataset_name, output_file)
&amp;nbsp;&amp;nbsp;&amp;nbsp; elif format == "XLS":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; export_to_xls(dataset_name, output_file)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; except:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; import traceback
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.AddError(traceback.format_exc())
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise ValueError("Don't know how to export to %r" % format)
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
print "FINISHED"
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;and here is yours added. Did i get it right?&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;# -*- coding: utf-8 -*-
"""
&amp;nbsp;&amp;nbsp; This script will convert a table to an excel spreadsheet. If the third-party
&amp;nbsp;&amp;nbsp; module xlwt is available, it will use that. Otherwise, it will fall back to
&amp;nbsp;&amp;nbsp; CSV.
"""
import arcgisscripting
import os

gp = arcgisscripting.create(9.3)

def header_and_iterator(dataset_name):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Returns a list of column names and an iterator over the same columns"""

&amp;nbsp;&amp;nbsp;&amp;nbsp; data_description = gp.Describe(dataset_name)
&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldnames = [f.name for f in data_description.fields if f.type not in ["Geometry", "Raster", "Blob"]]
&amp;nbsp;&amp;nbsp;&amp;nbsp; def iterator_for_feature():
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cursor = gp.SearchCursor(dataset_name)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row = cursor.next()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while row:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; yield [getattr(row, col) for col in fieldnames]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row = cursor.next()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; del row, cursor
&amp;nbsp;&amp;nbsp;&amp;nbsp; return fieldnames, iterator_for_feature()

def export_to_csv(dataset, output):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Output the data to a CSV file"""
&amp;nbsp;&amp;nbsp;&amp;nbsp; import csv

&amp;nbsp;&amp;nbsp;&amp;nbsp; def _encode(x):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if isinstance(x, unicode):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return x.encode("utf-8")
&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; return str(x)

&amp;nbsp;&amp;nbsp;&amp;nbsp; def _encodeHeader(x):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return _encode(x.replace(".","_"))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; out_writer = csv.writer(open(output, 'wb'))
&amp;nbsp;&amp;nbsp;&amp;nbsp; header, rows = header_and_iterator(dataset)
&amp;nbsp;&amp;nbsp;&amp;nbsp; out_writer.writerow(map(_encodeHeader, header))
&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out_writer.writerow(map(_encode, row))

def export_to_xls(dataset, output):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """
&amp;nbsp;&amp;nbsp;&amp;nbsp; Attempt to output to an XLS file. If xmlwt is not available, fall back
&amp;nbsp;&amp;nbsp;&amp;nbsp; to CSV.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; XLWT can be downloaded from http://pypi.python.org/pypi/xlwt"""
&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; import xlwt
&amp;nbsp;&amp;nbsp;&amp;nbsp; except ImportError:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.AddError("import of xlwt module failed")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return
&amp;nbsp;&amp;nbsp;&amp;nbsp; header, rows = header_and_iterator(dataset)

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Make spreadsheet
&amp;nbsp;&amp;nbsp;&amp;nbsp; workbook = xlwt.Workbook()
&amp;nbsp;&amp;nbsp;&amp;nbsp; worksheet = workbook.add_sheet(os.path.split(dataset)[1])

&amp;nbsp;&amp;nbsp;&amp;nbsp; #Set up header row, freeze panes
&amp;nbsp;&amp;nbsp;&amp;nbsp; header_style = xlwt.easyxf("font: bold on; align: horiz center")
&amp;nbsp;&amp;nbsp;&amp;nbsp; for index, colheader in enumerate(header):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; worksheet.write(0, index, colheader.replace(".","_"))
&amp;nbsp;&amp;nbsp;&amp;nbsp; worksheet.set_panes_frozen(True)
&amp;nbsp;&amp;nbsp;&amp;nbsp; worksheet.set_horz_split_pos(1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; worksheet.set_remove_splits(True)

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Write rows
&amp;nbsp;&amp;nbsp;&amp;nbsp; for rowidx, row in enumerate(rows):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for colindex, col in enumerate(row):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; worksheet.write(rowidx+1, colindex, col)

&amp;nbsp;&amp;nbsp;&amp;nbsp; # All done
&amp;nbsp;&amp;nbsp;&amp;nbsp; workbook.save(output)
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
if __name__ == "__main__":
&amp;nbsp;&amp;nbsp;&amp;nbsp; dataset_name = gp.GetParameterAsText(0)
&amp;nbsp;&amp;nbsp;&amp;nbsp; output_file = gp.GetParameterAsText(1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; format = gp.GetParameterAsText(2)
&amp;nbsp;&amp;nbsp;&amp;nbsp; if format == "CSV":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; export_to_csv(dataset_name, output_file)
&amp;nbsp;&amp;nbsp;&amp;nbsp; elif format == "XLS":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; export_to_xls(dataset_name, output_file)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; except:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; import traceback
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.AddError(traceback.format_exc())
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise ValueError("Don't know how to export to %r" % format)

print "Finished"

#start new script
import csv, os

table = r"C:\temp\python\XY.csv"
outFile = r"C:\temp\python\XY_1.csv"
outFile2 = r"C:\temp\python\XY_2.csv"

#read lines of CSV
f = open(table, "r")
lines=f.readlines()
lines=lines[1:]

f.close()

#write all lines except header to CSV
f = open(table, "w+")
for line in lines:
&amp;nbsp;&amp;nbsp;&amp;nbsp; f.write(line)

f.close()

#remove first column
with open(table,"r") as input:
&amp;nbsp;&amp;nbsp;&amp;nbsp; with open(outFile,"w+") as output:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer=csv.writer(output)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in csv.reader(input):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.writerow(row[1:])

#remove empty rows
input = open(outFile, 'rb')
output = open(outFile2, 'wb')
writer = csv.writer(output)
for row in csv.reader(input):
&amp;nbsp;&amp;nbsp;&amp;nbsp; if row:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.writerow(row)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
input.close()
output.close()

os.remove(table)
os.remove(outFile)

#rename to original CSV
os.rename(outFile2, table)

print "Finished"

&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 10:18:16 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/python-script-modification/m-p/208649#M7101</guid>
      <dc:creator>RandallClark1</dc:creator>
      <dc:date>2021-12-11T10:18:16Z</dc:date>
    </item>
    <item>
      <title>Re: Python script modification</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/python-script-modification/m-p/208650#M7102</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The below should work.&amp;nbsp; I added the additional code to a new function called 'reformat' and then called this function when CSV is chosen for the format type.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;# -*- coding: utf-8 -*-
"""
&amp;nbsp;&amp;nbsp; This script will convert a table to an excel spreadsheet. If the third-party
&amp;nbsp;&amp;nbsp; module xlwt is available, it will use that. Otherwise, it will fall back to
&amp;nbsp;&amp;nbsp; CSV.
"""
import arcgisscripting
import os

gp = arcgisscripting.create(9.3)

def header_and_iterator(dataset_name):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Returns a list of column names and an iterator over the same columns"""

&amp;nbsp;&amp;nbsp;&amp;nbsp; data_description = gp.Describe(dataset_name)
&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldnames = [f.name for f in data_description.fields if f.type not in ["Geometry", "Raster", "Blob"]]
&amp;nbsp;&amp;nbsp;&amp;nbsp; def iterator_for_feature():
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cursor = gp.SearchCursor(dataset_name)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row = cursor.next()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while row:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; yield [getattr(row, col) for col in fieldnames]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row = cursor.next()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; del row, cursor
&amp;nbsp;&amp;nbsp;&amp;nbsp; return fieldnames, iterator_for_feature()

def export_to_csv(dataset, output):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """Output the data to a CSV file"""
&amp;nbsp;&amp;nbsp;&amp;nbsp; import csv

&amp;nbsp;&amp;nbsp;&amp;nbsp; def _encode(x):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if isinstance(x, unicode):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return x.encode("utf-8")
&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; return str(x)

&amp;nbsp;&amp;nbsp;&amp;nbsp; def _encodeHeader(x):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return _encode(x.replace(".","_"))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; out_writer = csv.writer(open(output, 'wb'))
&amp;nbsp;&amp;nbsp;&amp;nbsp; header, rows = header_and_iterator(dataset)
&amp;nbsp;&amp;nbsp;&amp;nbsp; out_writer.writerow(map(_encodeHeader, header))
&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out_writer.writerow(map(_encode, row))

def export_to_xls(dataset, output):
&amp;nbsp;&amp;nbsp;&amp;nbsp; """
&amp;nbsp;&amp;nbsp;&amp;nbsp; Attempt to output to an XLS file. If xmlwt is not available, fall back
&amp;nbsp;&amp;nbsp;&amp;nbsp; to CSV.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; XLWT can be downloaded from http://pypi.python.org/pypi/xlwt"""
&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; import xlwt
&amp;nbsp;&amp;nbsp;&amp;nbsp; except ImportError:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.AddError("import of xlwt module failed")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return
&amp;nbsp;&amp;nbsp;&amp;nbsp; header, rows = header_and_iterator(dataset)

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Make spreadsheet
&amp;nbsp;&amp;nbsp;&amp;nbsp; workbook = xlwt.Workbook()
&amp;nbsp;&amp;nbsp;&amp;nbsp; worksheet = workbook.add_sheet(os.path.split(dataset)[1])

&amp;nbsp;&amp;nbsp;&amp;nbsp; #Set up header row, freeze panes
&amp;nbsp;&amp;nbsp;&amp;nbsp; header_style = xlwt.easyxf("font: bold on; align: horiz center")
&amp;nbsp;&amp;nbsp;&amp;nbsp; for index, colheader in enumerate(header):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; worksheet.write(0, index, colheader.replace(".","_"))
&amp;nbsp;&amp;nbsp;&amp;nbsp; worksheet.set_panes_frozen(True)
&amp;nbsp;&amp;nbsp;&amp;nbsp; worksheet.set_horz_split_pos(1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; worksheet.set_remove_splits(True)

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Write rows
&amp;nbsp;&amp;nbsp;&amp;nbsp; for rowidx, row in enumerate(rows):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for colindex, col in enumerate(row):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; worksheet.write(rowidx+1, colindex, col)

&amp;nbsp;&amp;nbsp;&amp;nbsp; # All done
&amp;nbsp;&amp;nbsp;&amp;nbsp; workbook.save(output)

def reformat(output):
&amp;nbsp;&amp;nbsp;&amp;nbsp; import csv
&amp;nbsp;&amp;nbsp;&amp;nbsp; #read lines of CSV
&amp;nbsp;&amp;nbsp;&amp;nbsp; f = open(output, "r")
&amp;nbsp;&amp;nbsp;&amp;nbsp; lines=f.readlines()
&amp;nbsp;&amp;nbsp;&amp;nbsp; lines=lines[1:]

&amp;nbsp;&amp;nbsp;&amp;nbsp; f.close()

&amp;nbsp;&amp;nbsp;&amp;nbsp; #write all lines except header to CSV
&amp;nbsp;&amp;nbsp;&amp;nbsp; f = open(output, "w+")
&amp;nbsp;&amp;nbsp;&amp;nbsp; for line in lines:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f.write(line)

&amp;nbsp;&amp;nbsp;&amp;nbsp; f.close()

&amp;nbsp;&amp;nbsp;&amp;nbsp; #remove first column
&amp;nbsp;&amp;nbsp;&amp;nbsp; with open(output,"r") as input:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; with open(output + "_1", "w+") as output2:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer=csv.writer(output2)
&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 csv.reader(input):
&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; writer.writerow(row[1:])

&amp;nbsp;&amp;nbsp;&amp;nbsp; #remove empty rows
&amp;nbsp;&amp;nbsp;&amp;nbsp; input = open(output + "_1", 'rb')
&amp;nbsp;&amp;nbsp;&amp;nbsp; output2 = open(output + "_2", 'wb')
&amp;nbsp;&amp;nbsp;&amp;nbsp; writer = csv.writer(output2)
&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in csv.reader(input):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if row:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.writerow(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; input.close()
&amp;nbsp;&amp;nbsp;&amp;nbsp; output2.close()
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; os.remove(output)
&amp;nbsp;&amp;nbsp;&amp;nbsp; os.remove(output + "_1")

&amp;nbsp;&amp;nbsp;&amp;nbsp; #rename to original CSV
&amp;nbsp;&amp;nbsp;&amp;nbsp; os.rename(output + "_2", output)
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
if __name__ == "__main__":
&amp;nbsp;&amp;nbsp;&amp;nbsp; dataset_name = gp.GetParameterAsText(0)
&amp;nbsp;&amp;nbsp;&amp;nbsp; output_file = gp.GetParameterAsText(1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; format = gp.GetParameterAsText(2)
&amp;nbsp;&amp;nbsp;&amp;nbsp; if format == "CSV":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; export_to_csv(dataset_name, output_file)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reformat(output_file)
&amp;nbsp;&amp;nbsp;&amp;nbsp; elif format == "XLS":
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; export_to_xls(dataset_name, output_file)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; except:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; import traceback
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gp.AddError(traceback.format_exc())
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; raise ValueError("Don't know how to export to %r" % format)
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
print "FINISHED"&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 10:18:19 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/python-script-modification/m-p/208650#M7102</guid>
      <dc:creator>JakeSkinner</dc:creator>
      <dc:date>2021-12-11T10:18:19Z</dc:date>
    </item>
  </channel>
</rss>

