Cómo guardar la configuración de apertura de un archivo de texto en un scriptHola,
Problema:
Tengo numerosos archivos .txt. Solo me preocupan los datos en la columna 4, comenzando con la fila 7 hasta el infinito. Me gustaría extraer todos los datos de la columna 4 de los numerosos archivos .txt y concatenarlos en una sola tabla. ¿Cuál es la mejor manera de hacer esto? Idealmente, me gustaría crear un script para ejecutar esto.
En la misma línea, cuando utilizo el método File - open para abrir los archivos .txt con Data (usando la vista previa), puedo formatear correctamente los datos de la columna 4, PERO no puedo averiguar cómo encontrar o guardar estos archivos abiertos ' configuración. Me gustaría guardar en el script para poder abrir los otros archivos .txt con la misma configuración.
¿Cómo hago esto?
Adjunté uno de mis archivos .txt de muestra como referencia.
¡Gracias por la ayuda!
Tabla de datosScriptingRe: Cómo guardar la configuración de apertura de un archivo de texto en un scriptCreo que la ruta a seguir es usar Importar varios archivos
Archivo => Importar varios archivos
Leerá todos los archivos de una carpeta y los concatenará (si lo desea).Entonces, todo lo que tendrá que hacer es eliminar las columnas que no desea.
Además, después de ejecutar toda la carpeta, o tal vez solo unos pocos archivos para un caso de prueba, puede ir a la entrada Fuente en el panel superior izquierdo de la tabla de datos y hacer clic derecho sobre ella y seleccionar Editar, y obtendrá todo el JSL necesario para ejecutar desde un script.
Re: Cómo guardar la configuración de apertura de un archivo de texto en un scriptLo siento, no describí mi objetivo con suficiente claridad. La sugerencia no me da lo que necesito. También me di cuenta de que tendré que usar el comando de unión, no el comando de concatenación.
Tengo 39 archivos .txt. Solo quiero los datos de la cuarta columna de cada archivo .txt. Quiero extraer esos datos y agregarlos a una nueva tabla de modo que tenga 39 columnas separadas (una para cada cuarta columna en los 39 archivos .txt).
Re: como guardar la configuracion de abrir un archivo de texto en un scriptPor ejemplo, hice 4 copias de su archivo de ejemplo y las coloqué todas en una carpeta en la carpeta de mi grupo de discusión.
Documents\Discussion Group\textfile
Luego fui a
Archivo => Importar varios archivos

Seleccioné la casilla de verificación para "Agregar columna de nombre de archivo"
Luego hice clic en "Configuración"

Desmarqué "Tiene encabezados"
Cambié la "Primera línea de datos" a 7
Desmarqué la casilla "Final del campo", "Coma" y marqué "Espacios".
Haga clic en Aceptar
Haga clic en Importar
La tabla de datos se abrió con columnas Col1-Col6 más las columnas FileName

Las únicas columnas que se desean son las columnas Col5 y Nombre de archivo, así que elimine todas las demás

Ahora todo lo que hay que hacer es separar los datos de los 4 archivos de entrada en columnas.
Ir a
Tablas => Dividir

Seleccione Nombre de archivo como la columna "Dividir por"
Seleccione la columna 5 como la columna "Columnas divididas".
Haga clic en Aceptar.
La nueva tabla tendrá una columna para cada uno de los archivos de entrada.

Esta debería ser la forma final de la tabla que necesita.Puede cambiar el nombre de las columnas a lo que desee.
Re: Cómo guardar la configuración de apertura de un archivo de texto en un scriptGracias Jim por mostrar archivos abiertos múltiples. Parece ser muy poderoso. Extrañamente, nunca lo he usado, probablemente debido al viejo hábito de realizar tareas de secuencias de comandos como esta.
Si todos los archivos tienen exactamente el mismo número de filas, la siguiente secuencia de comandos debería dar la misma tabla final.
Names Default To Here( 1 );
path = "path to directory of text files";
files = Files In Directory( path );
open_expr = Expr(
dt = Open(
path || Expr( files[i] ),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Spaces, CSV( 0 ) ),
Data Starts( 7 ),
Lines To Read( "All" )
),
private
)
);
M = []; //Matrix to hold data from multiple files
L = {}; // List of imported file names
For( i = 1, i <= N Items( files ), i++,
If( Ends With( files[i], ".txt" ),
Eval( Eval Expr( open_expr ) );
Insert Into( L, files[i] );
M ||= dt[0, 5]; // Add column 4 (5 becaue of fronting spaces in files)
Close( dt, no save );
)
);
// Make into table
dt = As Table( M, <<COLUMN names=""></COLUMN>