OverviewASV is a stable and mature platform independent Python module to input, manipulate and output `simple' database storage file formats such as CSV (Comma Separated Value) and TSV (Tab Separated Value). Building your own input/output routines is simple if you need to handle arbitrary file formats. ASV features include:
- Extendable input / output scheme.
- Built in input routines possess `good enough' heuristics to parse even badly formed files.
- A command line interface for quick conversion between different formats.
- Built in format handlers for:
- Colon separated values.
- Comma Separated Values (CSV).
- Tab Separated Values (TSV).
ASV is distributed under a BSD licence.
Versions available for download:
- ASV 0.5 (3 December 2002) (approx 10Kb)
- ASV 0.4 (3 April 2001) (approx 10Kb)
- ASV 0.3 (1 March 2001) (approx 5Kb)
An example usage of the ASV module
# Import the ASV module import ASV # Create a blank ASV instance my_data = ASV.ASV() # We are loading from a file called "test_data.csv" # We are using the CSV loader # The CSV file we are loading has column headings so that we can access data # by name rather than number my_data.input_from_file("test_data.csv", ASV.CSV(), has_field_names = 1) # Now `my_data' will hold some rows of data (presuming test_data.csv # wasn't blank). You can use `my_data' just like a normal Python list # Iterate over every row in my_data for row in my_data: # Print the row out - this gives us back an instance of the Row class print row # Print out a single element from the row print row # Because our input file had field names, we can print out a named # element in the row without having to know what its index is print row["address"] # Add a row to the end of `my_data' my_data.append(["Laurie", "England"]) # Print out the row we just added print my_data[-1] # Save the data out as a TSV file my_data.output_to_file("test_data_out.tsv", ASV.TSV())
- ASV 0.5 - 3 December 2002
- Fixed bug where giving a field with field_names to an ASV instance that didn't have field names itself caused problems.
- Fix ==/= typo in Row.__setitem__.
- ASV 0.4 - 3 April 2001
- Fixed bug where __setitem__ ignored the field_names parameter.
- Added switch to control whether "" in a field denotes a speech mark or not.
- Added code to make ASV `executable' with command line parameters etc.
- ASV 0.3 - 1 March 2001
First public release.
- ASV 0.2 - 2 November 2000
- ASV 0.1 - 29 October 2000
- http://www.object-craft.com.au/projects/csv/ for Dave Cole's C-coded Python module, which may be more appropriate if you require absolute efficiency at the expense of ease of installation and flexibility of operation.