Re: Export
- To: mathgroup at smc.vnet.net
- Subject: [mg110152] Re: Export
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Fri, 4 Jun 2010 08:02:40 -0400 (EDT)
On 6/3/10 at 5:38 AM, clint.zeringue at kirtland.af.mil (Clint) wrote: >How can I accomplish the following: >mylist = {1,2,3,4}; >I would like to "export" my list to a data file so that inside the >data file it would look like: >1,2,3,4 on the first line... This is easily done using Export. That is Export[filename, {{1,2,3,4}},"CSV"] will create the desired file. Note, the double brackets are needed here. Without them, Export will create 4 rows. >I then need to be able to read this back in using import.. This is done by doing Import[filename,"CSV"] >I also need the ability to "Append" to this data file another line >of data (ie mylist2 = {2,4,6,8}) >I would like to "write" this second line of data to the same file so >that the new file would look like: >1,2,3,4 on first line... >2,4,6,8 on second line... etc.. I would do this as follows: read in the contents of the existing file using Import[filename, "CSV"] to a conveniently variable. append the new data to that variable export entire data set back out to the file using Export[filename, variablename, "CSV"] If there currently is an option to append new data to "CSV" files I am not aware of it. It would be possible to create a means to append to "CSV" files if that is needed due to say a very large file size it could be done as: str=OpenAppend[filename]; WriteString[str, "\n",StringTake[ToString@{2,4,6,8}],{2,-2}]; Close[str]; A couple of things here. I've assumed an existing file (filename) created using Export as above. The last line of a "CVS" file created by Export won't have a newline and WriteString does not write a new line. That is why the newline is written first. WriteString will convert the data to a string before writing it out. But with a list that means an set of curly braces surrounding the output string. That is why the StringTake[ToString@ part is included. Finally, this will be a comma separated value format but it will also have spaces between the values. This won't matter to Import. But it might for some other purpose. >Then also how can I access a specific line of data? This last can be done as Import[filename, {"Data",n}] where n is the line number you want to access