如何在Windows XP上使用SAS重命名文本文件?

如何在Windows XP上使用SAS重命名文本文件?,sas,Sas,我在SAS中有一个创建.csv的进程。我有另一个Python进程,它等待文件存在,然后对该文件执行某些操作。我想确保Python进程在SAS完成文件编写之前不会开始执行它的任务 我想我应该让SAS创建.csv文件,然后在完成后重命名该文件。我可以在SAS中进行重命名吗?然后,python进程可以等待重命名的文件存在 编辑:我无意中发布了两次这个问题,然后无意中删除了两个版本。很抱歉 您可以在SAS数据集中生成输出,然后仅在完成.csv文件后才将其写入。不确定您是如何创建csv的,但我通常只是这样

我在SAS中有一个创建.csv的进程。我有另一个Python进程,它等待文件存在,然后对该文件执行某些操作。我想确保Python进程在SAS完成文件编写之前不会开始执行它的任务

我想我应该让SAS创建.csv文件,然后在完成后重命名该文件。我可以在SAS中进行重命名吗?然后,python进程可以等待重命名的文件存在


编辑:我无意中发布了两次这个问题,然后无意中删除了两个版本。很抱歉

您可以在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文件?或者在该目录中创建任何新文件时会触发

  • 如果它只触发到.csv,那么您可以简单地输出到一个.txt文件,然后使用x语句(OS命令)或@cmjohns建议的重命名函数对其进行重命名

  • 另一个选项是,您可以将.csv文件输出到其他目录,然后将其移动到python监视的目录。只要文件在同一磁盘上,移动文件就可以在瞬间完成

  • 您还可以修改python脚本以只查找.csv,然后执行选项1

  • 您甚至可以为python创建一个“标志”文件,以便在sas完成.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完成写入之前开始使用它。