【发布时间】:2022-11-23 03:23:59
【问题描述】:
我正在使用 Python 来自动化一系列模拟。为此,脚本应创建一个目录,cd 进入该目录,开始模拟,将数据从该文件夹复制到不同的文件夹,然后进行另一次模拟,此后。但是当我尝试创建一个目录并 cd 进入我刚刚创建的目录时,我得到了一个 FileNotFoundError,尽管该目录在那里。下面给出了示例代码,我们如何解决这个问题?
import os
import subprocess as sp
sp.Popen("mkdir MyFolder", shell=True)
os.chdir("./MyFolder")
sp.Popen("touch ImInMyFolder.txt", shell=True)
How can we fix this?
【问题讨论】:
-
不要使用 shell,只需执行
os.mkdir("MyFolder")。问题是,当使用Popen时,Python 不会等待进程完成。该过程与您的过程并行运行。 -
此外,您的
touch可以作为open("InMyFolder.txt").close()完成。subprocess很棒,但如果有等效的 Python 服务,请不要使用它。