【发布时间】:2023-03-08 22:00:01
【问题描述】:
我想下载一个文件然后压缩它。在我的代码中,我有一个子进程命令来下载文件,然后我有一个 shutil 命令来压缩它。但是在执行时,shutil 命令首先运行。
注意:“MyDownloadScript.pl”是下载所需文件的 Perl 脚本。为了完成这个任务,我必须下载这个脚本。
subprocess.Popen(['perl', 'C:\\gitrepo\\BuildScripts\\MyDownloadScript.pl', '-branch', 'BranchName'])
shutil.make_archive(('{}\\OutputZIP'.format('outputPath'), 'zip', 'C:\\startingFolder', 'startingFile.dmg')
尽管代码中函数的顺序不同,但 shutil 命令总是首先运行。以下是我在不同场景中运行脚本时发生的情况:
1) 如果不存在文件:
- 脚本抱怨找不到 .dmg 文件
- .dmg 文件下载后
- 未生成 ZIP
2)如果我之后再次运行脚本(当 .dmg 存在时)
- ZIP 文件是从 .dmg 创建的
- .dmg 已重新下载
为什么这些函数运行起来似乎是乱序的?任何想法/建议将不胜感激。
【问题讨论】:
标签: python-3.x subprocess shutil