gpt4 book ai didi

python - 如何在不同的目录中执行 python 脚本?

转载 作者:行者123 更新时间:2023-11-29 08:56:37 26 4
gpt4 key购买 nike

已解决请参阅下面我的回答,以供可能认为这有帮助的任何人使用。

我有两个脚本 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() # would be the same path as a.py
mydir_new = os.chdir(mydir+"\\testA")

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

作为文件夹的小流程图:

MAIN # main folder with unedited files and both a.py and b.py scripts
|
| (execute a.py)
|
--------testA # first folder created with first edits of files
|
| (execute b.py)
|
--------------testB # final folder created with final edits of files

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

最佳答案

最简单的答案可能是更改您的工作目录,然后从它所在的位置调用第二个 .py 文件:

python a.py && cd testA && python ../b.py

当然,您可能会发现编写一个脚本来为您完成这一切会更容易,如下所示:

将此文件另存为 runTests.sh,保存在与 a.py 相同的目录中:

#!/bin/sh
python a.py
cd testA
python ../b.py

使其可执行:

chmod +x ./runTests.sh

然后你可以简单地进入你的目录并运行它:

./runTests.sh

关于python - 如何在不同的目录中执行 python 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45384429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com