如何在不同目录中执行Python脚本?
如何在不同目录中执行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多个文件,复制粘贴是浪费时间的。