遞歸開啟多個資料文件<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我想找到一些可以遞歸開啟 Windows 目錄中的檔案的程式碼。
假設我的路徑是:c:\charlie\data
我希望 JMP 找到此目錄及更低目錄中的所有 *.txt 檔案並將其全部開啟。
最終我會將它們合併,但現在我只想將它們全部打開。
我嘗試過(沒有運氣):
路徑 = "C:\charlie\data\data1";
file_list = 目錄中的檔案("C:\charlie\data\data1");
對於 (i=1, i<=NItems(file_list), i++,
dt =
打開(
路徑||文件列表,
導入設定(
行尾( CRLF, CR, LF ),
字段結束(逗號,其他(“0x7c”)),
剝離報價( 1 ),
使用撇號作為引號(0),
掃描整份文件( 1 ),
將空列視為數字 ( 0 ),
標籤( 1 ),
列名開始( 1 ),
數據開始( 2 ),
要讀取的行(全部),
年份規則(“20xx”)
)
);
);
回覆:遞歸開啟多個資料文件該腳本可以很好地打開目錄中的所有文件,根據某些條件過濾它們,然後連接所有文件。
==================================================== = =================================================== == =
路徑 = "C:\temp\data\";
文件列表={};
file_list = 目錄中的檔案(路徑,遞歸);
myFiles = file_list;
For( i = 1, i <= N 項( file_list ), i++,
如果(包含(文件列表,“.sum”),
我的文件=“”
)
);
最終文件=我的文件;
///////////////////開啟清單中的第一個檔案////////////////////////
///////其他文件將附加到此文件中///////////
我=1;
dtjoin = 打開(
路徑||最終文件,
列(
通過_失敗=字符,
參數=字符,
數據值 = 數字,
單位=字符,
LSL = 數字,
USL = 數字,
註=字符,
Test_Cond = 字符
),
導入設定(
行尾( CRLF, CR, LF ),
字段結束(逗號,其他(“0x7c”)),
剝離報價( 1 ),
使用撇號作為引號(0),
掃描整份文件( 1 ),
將空列視為數字 ( 0 ),
標籤( 1 ),
列名開始( 1 ),
數據開始( 2 ),
要讀取的行(全部),
年份規則(“20xx”)
),
)
<< 設定名稱(“已加入1”);
////////////////////////////////////////////////// ///////// ////////////////////////////////////////// ///////////
//////////現在開啟清單中剩餘的檔案///////////////
////////////////////////////////////////////////// ///////// ////////////////////////////////////////// ///////////
我=2;
For( i = 2, i <= N Items( Final_files ), i++,
dt =
打開(
路徑||最終文件,
列(
通過_失敗=字符,
參數=字符,
數據值 = 數字,
單位=字符,
LSL = 數字,
USL = 數字,
註=字符,
Test_Cond = 字符
),
導入設定(
行尾( CRLF, CR, LF ),
字段結束(逗號,其他(“0x7c”)),
剝離報價( 1 ),
使用撇號作為引號(0),
掃描整份文件( 1 ),
將空列視為數字 ( 0 ),
標籤( 1 ),
列名開始( 1 ),
數據開始( 2 ),
要讀取的行(全部),
年份規則(“20xx”)
)
);
dtjoin = dtjoin << 連接(
德特,
輸出表名( "Joined" || Char( i ) ),
);
關閉(dt,nosave);
Close( "已加入" || Char( i - 1 ), nosave );
等待(0.1);
); //For結束
dtjoin << set name( "全部加入" );
回覆:遞歸開啟多個資料文件CH場,
我正在做類似的事情,我想一次只打開一個文件,然後將其連接到前一個文件的底部。
由於我正在處理的文件數量太多,打開所有文件然後將它們一次連接起來的簡單方法太混亂了。
附加的腳本允許您選擇一個包含 txt 或 csv 檔案的目錄,然後將它們連接在一起,一次一個。
如果所有文件不能同時裝入內存,這會有所幫助。
-B
回覆:遞歸開啟多個資料文件我應該說“來自 MPB”。謝謝 MPB。如果您有時間的話,我還有一個問題想問您。
回覆:遞歸開啟多個資料文件我加了“\”
謝謝!
現在我正在嘗試將它們全部連接起來。
我發現 MJB 的一篇貼文非常有幫助。
他發布了一種方法來執行此操作,但使用 JOIN 並且僅使用 JMP 檔案。
我新增了導入例程和「開啟預覽」選項。
我需要打開第一個文件,然後設定循環來開啟其他文件
並將它們與第一個連接起來。
它仍然不太有效,但我已經很接近了。
回覆:遞歸開啟多個資料文件您的路徑變數不以斜線結尾,因此產生的檔案名稱將會失敗。
要使其遞歸並具有正確的檔案名稱:
path = "C:\charlie\data\data1\";
file_list = Files In Directory(path, recursive);
for(i = 1, i <= N Items(file_list), i++,
print(path || file_list);
);
您可以根據需要修改列印語句。