Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Export with append??

720 views
Skip to first unread message

Maarten van der Burgt

unread,
Jan 11, 2013, 10:23:37 PM1/11/13
to
Hallo,

With a command like

Export["myfile.dat", results, "List" ]

is there a way to append the results to an existing myfile.dat, rather
than creating or overwriting an existing file?

thanks for your help,

Maarten

Alexei Boulbitch

unread,
Jan 14, 2013, 11:28:25 PM1/14/13
to
Hello,
Hi, Maarten,
A simple workaround is to import your file, append a new file to it and then - to export the combined list. Assume that your mathematica notebook entitled "trialImportExport.nb" is situated in the same folder as the already existing list entitled "myfile.dat".
To be precise I generated the file myfile.dat with the list:
{25, 36, 49}
in it. Assume further that I want to append the list
{a,b,c}
to it. Then the code

lst1=Import[NotebookDirectory[]<>"myfile.dat"]//Flatten;
lst2={a,b,c};
lst3=Append[lst1,lst2]//Flatten;
Export[NotebookDirectory[]<>"myfileNew.dat",lst3]

Does the job. The output cell below:
D:\Documents and Settings\ABo\My Documents\Works\Mathematica_works\Examples\TrialFiles\myfileNew.dat

shows that the file has been successfully exported.
I intentionally gave the resulting file a new name, "myfileNew.dat", to check the result, but the old name can also be given to it.

Have fun, Alexei


Alexei BOULBITCH, Dr., habil.
IEE S.A.
ZAE Weiergewan,
11, rue Edmond Reuter,
L-5326 Contern, LUXEMBOURG

Office phone : +352-2454-2566
Office fax: +352-2454-3566
mobile phone: +49 151 52 40 66 44

e-mail: alexei.b...@iee.lu<mailto:alexei.b...@iee.lu>

Maarten van der Burgt

unread,
Jan 16, 2013, 1:38:58 AM1/16/13
to
Dear Alexei,

Thanks for your help. Hope the Wolfram folks are reading this as well.
Something simple like this should really be an option in the function
Export.

Meanwhile I found back something similar for XLS files in my knowledge
base:

XLAppend[oldfile_, newfile_, newdata_] := Module[

{sheets, olddata, completedata},

sheets = Import[oldfile, "Sheets"];

olddata = {#, Import[oldfile, {"Sheets", #}]} & /@ sheets;

completedata = Join[olddata, newdata];

Export[newfile, Rule @@@ completedata]

]



Best regards,



Maarten





Maarten van der Burgt

Product Engineering - ICOS Division

________________________________

KLA-Tencor | ICOS Division
Tel: +32 16 398220 | Direct: +32 16 398263 | Fax: +32 16 400067

KLA-TENCOR (Belgium) - Haasrode Research Park 1112 - Esperantolaan 8 -
B-3001 Leuven - BELGIUM

Mail: maarten.v...@kla-tencor.com







From: Alexei Boulbitch [mailto:Alexei.B...@iee.lu]
Sent: maandag 14 januari 2013 10:22
Cc: Maarten van der Burgt
Subject: Re: Export with append??





Hallo,

Szabolcs

unread,
Jan 16, 2013, 11:15:07 PM1/16/13
to
Hello Maarten,

In fact there is a simple way to make Export append rather than overwrite. Please see here:

http://mathematica.stackexchange.com/a/2228/12

You just need to use a stream in place of the file name:

file = OpenAppend["out.txt"]

Export[file, data, "CSV"];
WriteString[file, "\n"];

Close[file]

Murray Eisenberg

unread,
Jan 18, 2013, 12:49:38 AM1/18/13
to
But surely appending like that won't work for many export formats. E.g., I hesitate to think what it might do to a PDF export.

On Jan 16, 2013, at 11:16 PM, Szabolcs <szho...@gmail.com> wrote:

> Hello Maarten,
>
> In fact there is a simple way to make Export append rather than overwrite. Please see here:
>
> http://mathematica.stackexchange.com/a/2228/12
>
> You just need to use a stream in place of the file name:
>
> file = OpenAppend["out.txt"]
>
> Export[file, data, "CSV"];
> WriteString[file, "\n"];
>
> Close[file]
>
> On Wednesday, 16 January 2013 01:38:58 UTC-5, Maarten van der Burgt wrote:
>> Dear Alexei,
>>
>>
>>
>> Thanks for your help. Hope the Wolfram folks are reading this as well.
>>
>> Something simple like this should really be an option in the function
>>
>> Export.
>>
>>
>>
>> Meanwhile I found back something similar for XLS files in my knowledge
>>
>> base:
>>
>>
>>
>> XLAppend[oldfile_, newfile_, newdata_] := Module[
>>
>>
>>
>> {sheets, olddata, completedata},
>>
>>
>>
>> sheets = Import[oldfile, "Sheets"];
>>
>>
>>
>> olddata = {#, Import[oldfile, {"Sheets", #}]} & /@ sheets;
>>
>>
>>
>> completedata = Join[olddata, newdata];
>>
>>
>>
>> Export[newfile, Rule @@@ completedata]
>>
>>
>>
>> ]
>>
>>
>>
>>
>>
>>
>>
>> Best regards,
>>
>>
>>
>>
>>
>>
>>
>> Maarten
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> Maarten van der Burgt
>>
>>
>>
>> Product Engineering - ICOS Division
>>
>>
>>
>> ________________________________
>>
>>
>>
>> KLA-Tencor | ICOS Division
>>
>> Tel: +32 16 398220 | Direct: +32 16 398263 | Fax: +32 16 400067
>>
>>
>>
>> KLA-TENCOR (Belgium) - Haasrode Research Park 1112 - Esperantolaan 8 =
---
Murray Eisenberg
mur...@math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower phone 413 549-1020 (H)
University of Massachusetts 413 5 (W)
710 North Pleasant Street fax 413 545-1801
Amherst, MA 01003-9305






Szabolcs Horvát

unread,
Jan 18, 2013, 12:49:54 AM1/18/13
to

As I understood, this is what the OP was asking for. It will work with any
export format, but of course it is true that with some formats it doesn't
make sense. Appending two PDFs will just breaks them.

With some formats, e.g. CSV, it can be useful.


On 17 January 2013 10:14, Murray Eisenberg <mur...@math.umass.edu> wrote:

> But surely appending like that won't work for many export formats. E.g., I
> hesitate to think what it might do to a PDF export.
>
> On Jan 16, 2013, at 11:16 PM, Szabolcs <szho...@gmail.com> wrote:
>
> > Hello Maarten,
> >
> > In fact there is a simple way to make Export append rather than
> overwrite. Please see here:
> >
> > http://mathematica.stackexchange.com/a/2228/12
> >
> > You just need to use a stream in place of the file name:
> >
> > file = OpenAppend["out.txt"]
> >
> > Export[file, data, "CSV"];
> > WriteString[file, "\n"];
> >
> > Close[file]
> >
> > On Wednesday, 16 January 2013 01:38:58 UTC-5, Maarten van der Burgt
> wrote:
> ---
> Murray Eisenberg mur...@math.umass.edu
> Mathematics & Statistics Dept.
> Lederle Graduate Research Tower phone 413 549-1020 (H)
> University of Massachusetts 413 545-2838 (W)
0 new messages