提取带有日期条件的信息:如果文件名大于指定的日期和时间,则将文件名放入列表中你好,
我正在尝试获取给定条件的目录中的文件名列表,如果它是 1) zip 存档,并且 2) 创建日期大于 yyyy/mm/dd。 下面是我的脚本。 我的问题
1)它运行没有错误,但不返回空列表。 我不确定问题是什么(也许是日期)。
2)如何将创建日期()输出格式设置为yyyy/mm/dd hh:mm:ss?
3)循环遍历path2需要很长时间,因为我有超过100K的zip文件夹。 还有其他更快的方法吗?
谢谢
path2 = "C:\Users\test\;
filelist = files in directory (path2);
lst2 = {};
For(i=1, i<= N items(filelist), i++,
If( Contains(filelist[i], ".zip") & Creation Date( path2||filelist[i]) > 2022-10-12T08:00:00, Insert Into( lst2, filelist[i] )
),
);
内容组织质量和工艺工程回复:使用日期条件提取信息:如果文件名大于指定的日期和时间,则将文件名放入列表中你可以试试这个......它应该加快速度
Names Default To Here( 1 );
path2 = "C:\Users\test\";
filelist = Files In Directory( path2 );
For( i = N Items( filelist ), i >= 1, i--,
If( Right( filelist[i], 4 ) != ".zip",
Remove From( filelist, i, 1 )
)
);
lst2 = {};
For( i = 1, i <= N Items( filelist ), i++,
If( Creation Date( path2 || filelist[i] ) > informat("2022-10-12T08:00:00", "yyyy-mm-ddThh:mm:ss"),
Insert Into( lst2, filelist[i] )
)
);回复:使用日期条件提取信息:如果文件名大于指定的日期和时间,则将文件名放入列表中嗨吉姆,谢谢。这解决了问题。 但是,当文件夹中有太多文件需要浏览时,会花费太多时间。 以下是我的新步骤,因此下次当我只想提取最新文件时,不需要像使用日期/时间作为过滤器(上面)那样花费很长时间。 我不确定这是否是一种有效的方法。 有没有更好的方法以更短的时间提取最新文件?
1)第一次获取定义文件夹中的整个文件列表(目录中的文件(dir) )。 将其保存到表的一列“T1”中(仅运行一次)
2)一段时间后,最新文件添加到同一文件夹中。脚本将转到同一文件夹并将整个文件列表作为“newlist”(newlist =目录中的文件(dir)) 。
3)获取表1)中的列作为列表,然后循环以从newlist中删除元素(我使用Remove From())。
4)在新列表上做任何需要做的事情。
5) 将 newlist 添加到 1) 中的表中。
6)下次当我需要再次获取最新文件时,重复步骤2)-5)。
有什么建议吗?
回复:使用日期条件提取信息:如果文件名大于指定的日期和时间,则将文件名放入列表中在您提供的示例中,path2 = 行上缺少双引号,而且 JMP 似乎没有处理时间参考,因此通过将其更改为 Informat() 函数,可以确保JMP 日期/时间参考被正确解释。
names default to here(1);
path2 = "C:\Users\test\";
filelist = Files In Directory( path2 );
lst2 = {};
For( i = 1, i <= N Items( filelist ), i++,
If( Contains( filelist[i], ".zip" ) & Creation Date( path2 || filelist[i] ) > informat("2022-10-12T08:00:00", "yyyy-mm-ddThh:mm:ss"),
Insert Into( lst2, filelist[i] )
)
);