<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://performiq.com/kb/index.php?action=history&amp;feed=atom&amp;title=Python_-_File_sorts</id>
	<title>Python - File sorts - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://performiq.com/kb/index.php?action=history&amp;feed=atom&amp;title=Python_-_File_sorts"/>
	<link rel="alternate" type="text/html" href="https://performiq.com/kb/index.php?title=Python_-_File_sorts&amp;action=history"/>
	<updated>2026-05-18T12:38:11Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://performiq.com/kb/index.php?title=Python_-_File_sorts&amp;diff=3007&amp;oldid=prev</id>
		<title>PeterHarding at 01:14, 2 April 2009</title>
		<link rel="alternate" type="text/html" href="https://performiq.com/kb/index.php?title=Python_-_File_sorts&amp;diff=3007&amp;oldid=prev"/>
		<updated>2009-04-02T01:14:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:14, 2 April 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l28&quot;&gt;Line 28:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 28:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;__version__        = &amp;#039;1.0.0&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;__version__        = &amp;#039;1.0.0&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;source_data        = &amp;#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;FacilityNames&lt;/del&gt;.dat&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;source_data        = &amp;#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Names&lt;/ins&gt;.dat&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sorted_data        = &amp;#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sorted&lt;/del&gt;.dat&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sorted_data        = &amp;#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Sorted&lt;/ins&gt;.dat&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;header             = None&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;header             = None&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>PeterHarding</name></author>
	</entry>
	<entry>
		<id>https://performiq.com/kb/index.php?title=Python_-_File_sorts&amp;diff=1871&amp;oldid=prev</id>
		<title>PeterHarding at 02:03, 16 April 2008</title>
		<link rel="alternate" type="text/html" href="https://performiq.com/kb/index.php?title=Python_-_File_sorts&amp;diff=1871&amp;oldid=prev"/>
		<updated>2008-04-16T02:03:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:03, 16 April 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l144&quot;&gt;Line 144:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 144:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#-------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#-------------------------------------------------------------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Python]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>PeterHarding</name></author>
	</entry>
	<entry>
		<id>https://performiq.com/kb/index.php?title=Python_-_File_sorts&amp;diff=1870&amp;oldid=prev</id>
		<title>PeterHarding: New page: =Example=  &lt;pre&gt; #!/usr/bin/env python # #  $Id:$ # #-------------------------------------------------------------------------------  &quot;&quot;&quot; Sort CSV data to generate LoadRunner parameter fil...</title>
		<link rel="alternate" type="text/html" href="https://performiq.com/kb/index.php?title=Python_-_File_sorts&amp;diff=1870&amp;oldid=prev"/>
		<updated>2008-04-16T02:03:08Z</updated>

		<summary type="html">&lt;p&gt;New page: =Example=  &amp;lt;pre&amp;gt; #!/usr/bin/env python # #  $Id:$ # #-------------------------------------------------------------------------------  &amp;quot;&amp;quot;&amp;quot; Sort CSV data to generate LoadRunner parameter fil...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Example=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
#&lt;br /&gt;
#  $Id:$&lt;br /&gt;
#&lt;br /&gt;
#-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
Sort CSV data to generate LoadRunner parameter files&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
import os&lt;br /&gt;
import csv&lt;br /&gt;
import sys&lt;br /&gt;
import getopt&lt;br /&gt;
import random&lt;br /&gt;
import datetime&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
debug_flg          = False&lt;br /&gt;
max_flg            = False&lt;br /&gt;
random_flg         = False&lt;br /&gt;
verbose_flg        = False&lt;br /&gt;
&lt;br /&gt;
__version__        = &amp;#039;1.0.0&amp;#039;&lt;br /&gt;
&lt;br /&gt;
source_data        = &amp;#039;FacilityNames.dat&amp;#039;&lt;br /&gt;
sorted_data        = &amp;#039;sorted.dat&amp;#039;&lt;br /&gt;
&lt;br /&gt;
header             = None&lt;br /&gt;
no_columns         = None&lt;br /&gt;
rows               = []&lt;br /&gt;
&lt;br /&gt;
#==== Misc Sort Functions ======================================================&lt;br /&gt;
&lt;br /&gt;
def by_Col0_as_Int(item1, item2):&lt;br /&gt;
   return cmp(int(item1[0]), int(item2[0]))&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
def by_Col1_as_UCAlpha(item1, item2):&lt;br /&gt;
   return cmp(item1[1].upper(), item2[1].upper())&lt;br /&gt;
&lt;br /&gt;
#----- Read in source CSV data to be transposed --------------------------------&lt;br /&gt;
&lt;br /&gt;
def read_csv():&lt;br /&gt;
   global no_columns&lt;br /&gt;
   global header&lt;br /&gt;
&lt;br /&gt;
   csv_in  = open(source_data, &amp;quot;rb&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
   reader = csv.reader(csv_in)&lt;br /&gt;
&lt;br /&gt;
   cnt = 0&lt;br /&gt;
&lt;br /&gt;
   for row in reader:&lt;br /&gt;
      cnt += 1&lt;br /&gt;
      if cnt == 1:&lt;br /&gt;
         header = row&lt;br /&gt;
         continue&lt;br /&gt;
      l  = len(row)&lt;br /&gt;
      if no_columns:&lt;br /&gt;
        if l != no_columns:&lt;br /&gt;
           print &amp;quot;Exception at row %d  Found %d columns - should be %d\n%s&amp;quot; % (cnt, no_columns, l, row)&lt;br /&gt;
      else:&lt;br /&gt;
         no_columns = l&lt;br /&gt;
&lt;br /&gt;
      rows.append(row)&lt;br /&gt;
&lt;br /&gt;
   csv_in.close()  # Explicitly close the file *NOW*&lt;br /&gt;
&lt;br /&gt;
   no_rows = len(rows)&lt;br /&gt;
&lt;br /&gt;
   print &amp;quot;Read %d rows&amp;quot; % no_rows&lt;br /&gt;
&lt;br /&gt;
   return no_rows&lt;br /&gt;
&lt;br /&gt;
#----- Sort the data -------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
def sort():&lt;br /&gt;
   out = open(sorted_data,&amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
   #rows.sort(by_Col0_as_Int)&lt;br /&gt;
   rows.sort(by_Col1_as_UCAlpha)&lt;br /&gt;
&lt;br /&gt;
   out.write(&amp;#039;%s,%s\n&amp;#039; % (header[0], header[1]))&lt;br /&gt;
&lt;br /&gt;
   for row in rows:&lt;br /&gt;
      out.write(&amp;#039;%s,%s\n&amp;#039; % (row[0], row[1]))&lt;br /&gt;
&lt;br /&gt;
   out.close()&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
USAGE = &amp;quot;&amp;quot;&amp;quot;\&lt;br /&gt;
&lt;br /&gt;
  Usage:&lt;br /&gt;
&lt;br /&gt;
     $ ./sort.py [-d] [-v] [-f &amp;lt;filename&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def usage():&lt;br /&gt;
   sys.stderr.write(USAGE)&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
def main(argv):&lt;br /&gt;
   global debug_flg&lt;br /&gt;
   global verbose_flg&lt;br /&gt;
   global file&lt;br /&gt;
&lt;br /&gt;
   #----- Process command line arguments ----------------------------&lt;br /&gt;
&lt;br /&gt;
   try:&lt;br /&gt;
      opts, args = getopt.getopt(argv, &amp;quot;df:hv&amp;quot;,&lt;br /&gt;
                 [&amp;quot;debug&amp;quot;, &amp;quot;file=&amp;quot;, &amp;quot;help&amp;quot;, &amp;quot;verbose&amp;quot;])&lt;br /&gt;
   except getopt.GetoptError:&lt;br /&gt;
      usage()&lt;br /&gt;
      sys.exit(2)&lt;br /&gt;
   else:&lt;br /&gt;
      for opt, arg in opts:&lt;br /&gt;
         if opt in (&amp;quot;-d&amp;quot;, &amp;quot;--debug&amp;quot;):&lt;br /&gt;
            debug_flg = True&lt;br /&gt;
         elif opt in (&amp;quot;-f&amp;quot;, &amp;quot;--file&amp;quot;):&lt;br /&gt;
            logfile = arg&lt;br /&gt;
         elif opt in (&amp;quot;-h&amp;quot;, &amp;quot;--help&amp;quot;):&lt;br /&gt;
            usage()&lt;br /&gt;
            sys.exit(0)&lt;br /&gt;
         elif opt in (&amp;quot;-v&amp;quot;, &amp;quot;--verbose&amp;quot;):&lt;br /&gt;
            verbose_flg = True&lt;br /&gt;
&lt;br /&gt;
   read_csv()&lt;br /&gt;
   sort()&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main(sys.argv[1:])&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>PeterHarding</name></author>
	</entry>
</feed>