Importieren mehrerer CSV-Dateien mit demselben FormatIch habe mehrere CSV-Dateien mit ähnlichem Format. Alle CSV-Dateien haben einen Header in Zeile Nr. 279 & Daten beginnen ab Zeile Nr. 281. Auch wenn die Länge der Daten variieren kann, enthalten die letzten vier Zeilen aller CSV-Dateien irrelevante Informationen und müssen entfernt werden.
Derzeit verwende ich die Funktion „Mehrere Dateiimport“, um die Daten zu importieren. aber ich weiß nicht, wie ich die letzten 4 Zeilen ausschließen soll. Ich entferne die Zeilen, nachdem ich sie in die JMP-Tabelle importiert habe. Ist es möglich, ein Skript zu erstellen, um automatisch alle CSV-Dateien in einem Verzeichnis zu importieren und sie durch Ausschließen der letzten 4 Zeilen zu verketten? Das folgende Skript erhalte ich, wenn ich eine einzelne CSV-Datei importiere.
Open("C:\Users\TEST\ABC.csv",
columns(
New Column( "Record", Character, "Nominal" ),
New Column( "14", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "ID", Character, "Nominal" ),
New Column( "XREL", Character, "Nominal" ),
New Column( "YREL", Character, "Nominal" ),
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Tab, Space, Comma, CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 279 ),
Data Starts( 281 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
)Tatsächlich enthalten alle Spalten numerische Werte im fortlaufenden Format. Aufgrund der oben genannten irrelevanten Informationen kann es jedoch als „nominal“ erkannt werden.
DatenzugriffDatenmischung und -bereinigungMassenanpassungBetreff: Mehrere CSV-Dateien mit demselben Format importierenDanke, Jim.
Ihre Lösung hat mir viel Zeit gespart.
Betreff: Mehrere CSV-Dateien mit demselben Format importierenHier ist eine Änderung an Ihrem Code, die alle Dateien in einem bestimmten Verzeichnis findet, jede einzelne öffnet, die letzten vier Zeilen löscht und sie dann einer Verkettungsdatei hinzufügt.
Der Code ist nicht vollständig getestet, da ich keine Dateien habe, die Ihrer Eingabe entsprechen.aber es sollte in der Nähe sein und Sie sollten in der Lage sein, alle kleineren Probleme zu lösen.
Names Default To Here( 1 );
dirFiles = Files In Directory( "C:\Users\TEST" );
// Create the output data table to concatenate all files to
dtFinal = New Table( "Final", New Column( "Source", character ) );
For( i = 1, i <= N Items( dirFiles ), i++,
dt = Open(
"C:\Users\TEST\" || dirFiles[i],
columns(
New Column( "Record", Character, "Nominal" ),
New Column( "14", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "ID", Character, "Nominal" ),
New Column( "XREL", Character, "Nominal" ),
New Column( "YREL", Character, "Nominal" ),
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Tab, Space, Comma, CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 279 ),
Data Starts( 281 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
// Delete the last 4 rows
dt << delete rows( Index( N Rows( dt ) - 4, N Rows( dt ) ) );
// Add a source column
dt << New Column( "Source", character, set each value( dirFiles[i] ) );
// Concatenate the file
dtFinal << concatenate( dt, Append to first table( 1 ) );
// delete the current input table
Close( dt, nosave );
);
Dies ist langsamer als der Mehrfachdateiimport, erledigt aber die Aufgabe