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 281. Auch wenn die Länge der Daten variieren kann, enthalten die letzten 4 Zeilen aller CSV-Dateien irrelevante Informationen und müssen entfernt werden.
Derzeit verwende ich die Funktion "Mehrere Dateiimporte", um die Daten zu importieren. aber ich weiß nicht, wie man die letzten 4 Zeilen ausschließt. Ich werde die Zeilen los, nachdem ich 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 zu verketten, indem die letzten 4 Zeilen ausgeschlossen werden? Das folgende Skript ist dasjenige, das ich bekomme, 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. Aber die oben erwähnten irrelevanten Informationen lassen sie als „nominal“ erkannt werden.
AnalytikDatentabelleSkriptingBetreff: Mehrere CSV-Dateien mit demselben Format importierenHier ist eine Modifikation Ihres Codes, die alle Dateien in einem bestimmten Verzeichnis findet, jede einzelne öffnet, die letzten vier Zeilen löscht und sie dann zu 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 läuft langsamer als der Import mehrerer Dateien, aber es wird die Arbeit erledigen
Betreff: Mehrere CSV-Dateien mit demselben Format importierenDanke Jim.
Ihre Lösung hat mir viel Zeit gespart.