Pregunta: ¿Es posible importar un archivo MX guardado con DumpSave
sin evaluar el contenido?¿Es posible importar un archivo MX sin evaluar los contenidos?
Permítanme ilustrar:
Vamos a crear una variable, data
:
In[2]:= data = Range[10]
Out[2]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
Se puede exportar e importadas por MX sin hacer definiciones:
In[3]:= [email protected][data, "MX"]
Out[3]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
Pero, ¿y si usamos DumpSave
?
In[4]:= DumpSave["data.mx", data]
Out[4]= {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}
(Y claro data
)
In[5]:= Clear[data]
En reimportación, no se devuelve nada:
In[6]:= Import["data.mx", {"MX", "HeldExpression"}]
Pero la variable data
llega a ser definido de nuevo, como si se hubiera utilizado Get
.
In[7]:= data
Out[7]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
lo que habría esperado a obtener algo así como Hold[data = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}]
, es decir, algo similar a lo que se escriba en un archivo .m
cuando se utiliza Save
.
Tal vez sea técnicamente imposible evitar la definición que se hace porque DumpSave
y Get
manipular directamente el estado núcleo en lugar de la escritura y la lectura de definiciones en evaluable como Save
hace? Esto es sólo una suposición.
(editar) Tenga en cuenta: No estoy tratando de salvar de una manera que puede ser importado "Held". Ya puedo hacer eso usando Export
. Estoy buscando importar archivos anteriores DumpSave
d MX en su lugar.
respuesta Parece que es imposible hacer esto a menos que el archivo se ha guardado MX para permitir específicamente.
@Szabolcs he añadido algo de código para ilustrar la respuesta. –