동일한 형식의 여러 csv 파일 가져오기비슷한 형식의 csv 파일이 여러 개 있습니다. 모든 csv 파일에는 행 번호에 헤더가 있습니다. 279 & 데이터는 281번 행부터 시작합니다. 데이터의 길이는 다를 수 있지만 모든 csv 파일의 마지막 4개 행에는 관련 없는 정보가 있으므로 제거해야 합니다.
현재 '다중 파일 가져오기' 기능을 사용하여 데이터를 가져오고, 하지만 마지막 4개 행을 제외하는 방법을 모르겠습니다. JMP 테이블에서 가져온 후 행을 제거합니다. 디렉토리의 모든 csv 파일을 자동으로 가져오고 마지막 4개 행을 제외하여 연결하는 스크립트를 만들 수 있습니까? 아래 스크립트는 단일 csv 파일을 가져올 때 얻는 스크립트입니다.
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" )
)
)실제로 모든 열에는 연속 형식의 숫자 값이 포함됩니다. 다만, 위에서 언급한 관련 없는 정보는 '명목상'으로 인식하게 됩니다.
해석학데이터 테이블스크립팅Re: 동일한 형식의 여러 csv 파일 가져오기다음은 주어진 디렉토리에서 모든 파일을 찾고, 각 파일을 열고, 마지막 4개 행을 삭제한 다음 연결 파일에 추가하는 코드 수정입니다.
귀하의 입력과 일치하는 파일이 없기 때문에 코드가 완전히 테스트되지 않았습니다.하지만 가까이에 있어야 하며 사소한 문제를 해결할 수 있어야 합니다.
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 );
);
이것은 다중 파일 가져오기보다 느리게 실행되지만 작업은 완료됩니다.
Re: 동일한 형식의 여러 csv 파일 가져오기고마워 짐.
귀하의 솔루션으로 많은 시간이 절약되었습니다.