递归打开多个数据文件<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”)
)
);
);
Re: 递归打开多个数据文件该脚本可以很好地打开目录中的所有文件,根据某些条件过滤它们,然后连接所有文件。
==================================================== ==================================================== =
路径 = "C:\temp\data\";
文件列表 = {};
file_list = 目录中的文件(路径,递归);
我的文件 = 文件列表;
对于(i = 1,i <= N 项(file_list),i++,
如果(包含(文件列表, ".sum"),
我的文件= ""
)
);
final_files = 我的文件;
/////////////////打开列表中的第一个文件/////////////////
///////其他文件将附加到这个//////////
我=1;
dtjoin = 打开(
路径 || final_files ,
列(
Pass_Fail = 字符,
参数=字符,
Data_Value = 数字,
单位 = 字符,
LSL = 数字,
USL = 数字,
注意=字符,
Test_Cond = 字符
),
导入设置(
行尾(CRLF,CR,LF),
字段结束(逗号,其他(“0x7c”)),
剥离引号(1),
使用撇号作为引号(0),
扫描整个文件(1),
将空列视为数字(0),
标签(1),
列名开始(1),
数据开始(2),
要阅读的行数(全部),
年份规则(“20xx”)
),
)
<< 设置名称("已加入1");
///////////////////////////////////////// ///////////////////////
/////////现在打开列表中剩余的文件////////////
///////////////////////////////////////// ///////////////////////
我=2;
对于(i = 2,i <= N 项(final_files),i++,
dt =
打开(
路径 || final_files ,
列(
Pass_Fail = 字符,
参数=字符,
Data_Value = 数字,
单位 = 字符,
LSL = 数字,
USL = 数字,
注意=字符,
Test_Cond = 字符
),
导入设置(
行尾(CRLF,CR,LF),
字段结束(逗号,其他(“0x7c”)),
剥离引号(1),
使用撇号作为引号(0),
扫描整个文件(1),
将空列视为数字(0),
标签(1),
列名开始(1),
数据开始(2),
要阅读的行数(全部),
年份规则(“20xx”)
)
);
dtjoin = dtjoin << 连接(
dt,
输出表名(“已加入”|| Char(i)),
);
关闭(dt,nosave);
关闭(“加入”|| 字符( i - 1 ),nosave );
等待(0.1);
); //结束
dtjoin << set name("All Joined");
Re: 递归打开多个数据文件CH字段,
我正在做类似的事情,我想一次只打开一个文件,然后将其连接到前一个文件的底部。
由于我正在处理的文件数量众多,打开所有文件然后一次将它们全部连接起来的简单方法太麻烦了。
附加的脚本允许您选择一个包含 txt 或 csv 文件的目录,然后将它们连接在一起,一次一个。
如果所有文件也不能同时放入内存,这会有所帮助。
-B
Re: 递归打开多个数据文件我应该说“来自 MPB”。谢谢 MPB。如果你有时间的话,我还有一个问题要问你。
Re: 递归打开多个数据文件我添加了“\”
谢谢!
现在我正在尝试将它们全部连接起来。
我从 MJB 找到了一篇很有帮助的帖子。
他发布了一种方法来执行此操作,但使用 JOIN 并且仅使用 JMP 文件。
我添加了我的导入例程和“打开预览”选项。
我需要打开第一个文件,然后设置循环打开其他文件
并将它们与第一个连接起来。
它仍然无法正常工作,但我很接近。
Re: 递归打开多个数据文件您的路径变量不以斜杠结尾,因此生成的文件名将失败。
要使其递归并具有正确的文件名:
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);
);
您可以根据需要修改打印语句。