如何在不同目录中执行Python脚本?

23 浏览
0 Comments

如何在不同目录中执行Python脚本?

已解决,请查看下面的答案,希望对需要帮助的人有所帮助。

我有两个脚本a.py和b.py。

在当前目录"C:\Users\MyName\Desktop\MAIN"中,我运行> python a.py。

第一个脚本a.py在当前目录中运行,对一堆文件进行操作,并创建一个新目录(testA),其中包含这些文件的编辑版本,同时将它们移动到新目录中。然后我需要在testA中运行b.py来处理这些文件。

作为一个初学者,我会将b.py脚本复制粘贴到testA中,并再次执行命令"> python b.py",这将在这些新文件上运行一些命令,并创建另一个包含这些编辑文件的文件夹(testB)。

我想消除等待a.py完成、进入新目录、粘贴b.py并运行b.py的麻烦。我正在尝试编写一个bash脚本,以在保持目录层次结构的同时执行这些脚本。

#!/usr/bin/env bash
 python a.py && python b.py

脚本a.py顺利运行,但b.py根本不执行。没有任何关于b.py失败的错误消息出现,我认为这是因为一旦a.py完成,b.py就不存在于那个新目录中了。

我是否可以在b.py中添加一个小脚本将其移动到新目录中?我实际上也尝试过更改b.py的目录路径,但没有效果。

例如在b.py中:

mydir = os.getcwd() # 与a.py的路径相同
mydir_new = os.chdir(mydir+"\\testA")

我在b.py中的所有实例中将mydirs更改为mydir_new,但也没有任何区别... 我也不知道如何在bash中将一个脚本移动到一个新目录中。

关于文件夹的一个小流程图:

MAIN # 包含未编辑文件和a.py、b.py脚本的主文件夹
|
|(执行a.py)
|
--------testA # 创建的第一个文件夹,包含文件的第一个编辑版本
         |
         |(执行b.py)
         |
         --------------testB # 创建的最终文件夹,包含文件的最终编辑版本

TLDR:如果b.py依赖于在testA中创建和存储的文件,我如何从主测试文件夹(bash脚本风格)执行a.py和b.py?通常我会将b.py复制粘贴到testA中,然后运行b.py - 但现在有200多个文件,复制粘贴是浪费时间的。

0