【问题标题】:SAS automation move files from folder to folderSAS 自动化将文件从一个文件夹移动到另一个文件夹
【发布时间】:2018-10-09 14:23:14
【问题描述】:

我目前有 python 代码运行 html 抓取并将数据作为 CSV 文件存储在我计算机上名为“新数据”的文件夹中。然后,我想通过上传到该文件夹​​的每个 CSV 文件运行我的 SAS 代码。通过我的 SAS 代码运行该数据后,我想将所有 CSV 文件从“新数据”移动到名为“已处理数据”的文件夹中。我想知道在通过代码发送 CSV 文件后,哪些 SAS 代码可以帮助我将计算机上的一个文件夹移动到另一个文件夹。此外,代码必须自动化,因为每天都会有新的 CSV 文件进来。

谢谢!

【问题讨论】:

  • FCOPY 函数将移动文件。但是,如果您启用了 XCMD,则最好使用系统命令(取决于您的操作系统)来一次移动整个文件夹。
  • 此宏参考也可能会有所帮助,尽管您也可以在没有宏的情况下执行此操作。 communities.sas.com/t5/SAS-Communities-Library/…
  • 您是否从 SAS 中启动 python 代码?您的 SAS 会话是在 SAS 服务器环境中,还是独立的(PC-SAS/显示管理器)?所有抓取文件的内容是否一致(列名、类型和最大长度)?抓取的文件名是否一致或遵循模式?什么是操作系统?您知道如何安排任务或创建 cron 作业条目吗?你有没有从 python 代码启动批处理 SAS 程序?

标签: sas


【解决方案1】:

我做过类似的事情。数据步骤的一部分是将文件从一个文件夹复制到另一个文件夹。我在 SAS 中使用了 DOS 命令。该命令需要用单引号括起来。如果文件夹名或文件名中有空格,则文件所在目录需用双引号括起来。 这是将“新数据”文件夹中的所有 csv 文件移动到“已处理数据”文件夹的示例:

data a;
b = system ('move "x:\sas\project\new data\*.csv" "x:\sas\project\processed data\" ');
run;

注意报价。正如 Reeza 提到的,此代码假定 XCMD 已启用。

【讨论】:

  • xcopy 不动。 xcopy 已死,请使用robocopy … /MOVE
  • 还假设 XCMD 已启用,这可能是也可能不是。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多