如何在Windows XP上使用SAS重命名文本文件?
我在SAS中有一个创建.csv的进程。我有另一个Python进程,它等待文件存在,然后对该文件执行某些操作。我想确保Python进程在SAS完成文件编写之前不会开始执行它的任务 我想我应该让SAS创建.csv文件,然后在完成后重命名该文件。我可以在SAS中进行重命名吗?然后,python进程可以等待重命名的文件存在如何在Windows XP上使用SAS重命名文本文件?,sas,Sas,我在SAS中有一个创建.csv的进程。我有另一个Python进程,它等待文件存在,然后对该文件执行某些操作。我想确保Python进程在SAS完成文件编写之前不会开始执行它的任务 我想我应该让SAS创建.csv文件,然后在完成后重命名该文件。我可以在SAS中进行重命名吗?然后,python进程可以等待重命名的文件存在 编辑:我无意中发布了两次这个问题,然后无意中删除了两个版本。很抱歉 您可以在SAS数据集中生成输出,然后仅在完成.csv文件后才将其写入。不确定您是如何创建csv的,但我通常只是这样
编辑:我无意中发布了两次这个问题,然后无意中删除了两个版本。很抱歉 您可以在SAS数据集中生成输出,然后仅在完成.csv文件后才将其写入。不确定您是如何创建csv的,但我通常只是这样做:
data _null_;
file './ouptut_file.csv' dlm=',';
set dataset_name;
put var1 var2;
run;
如果您在SAS代码的末尾执行此操作,则在您完成数据操作之前不会生成csv文件。对于verion 9.2和更高版本,SAS有一个可以按照您希望的方式工作的脚本。我认为比重命名更好的方法是编写一个执行SAS程序的shell脚本,然后仅在SAS程序无错误退出后执行Python脚本。根据您的操作系统,此操作的语法会有所不同,但不会太难。实现此操作的方法不止一种 python脚本是否只监视.csv文件?或者在该目录中创建任何新文件时会触发
但是如果可能的话,我想我会选择@jgunnink。让观看程序观看一个单独的小文件而不是大的CSV文件怎么样?这将由SAS在一次写入操作中写入,并降低在写入之前触发读取的风险
data _null_;
file 'bigfile.csv' dsd ;
set bigdata;
put (_all_) (+0);
run;
data _null_;
file 'bigfile.txt' ;
put 'bigfile.csv written';
run;
这就是我目前正在做的,但我认为这可能是一个问题,因为.csv文件非常大,因此一旦sas开始写入该文件,python就可以检测到该文件存在,并在sas完成写入之前开始使用它。