shell 子进程.Popen在同一目录中找不到bash文件

bxgwgixi  于 2023-10-23  发布在  Shell
关注(0)|答案(1)|浏览(191)

我正在尝试从Python脚本运行bash脚本。这个bash脚本和python脚本都位于同一个目录中。然而,当我运行Python脚本时,我得到No such file or directory错误。
我的当前目录

  1. xxx@xxx:/home# ls
  2. check.sh sc.py

下面是我尝试运行的代码,sc.py

  1. import subprocess
  2. subprocess.Popen(["check.sh", "ABC"])

我得到以下错误:

  1. xxx@xx:/home# python3 sc.py
  2. Traceback (most recent call last):
  3. File "sc.py", line 2, in <module>
  4. subprocess.Popen(["check.sh", "ABC"])
  5. File "/usr/lib/python3.6/subprocess.py", line 729, in __init__
  6. restore_signals, start_new_session)
  7. File "/usr/lib/python3.6/subprocess.py", line 1364, in _execute_child
  8. raise child_exception_type(errno_num, err_msg, err_filename)
  9. FileNotFoundError: [Errno 2] No such file or directory: 'check.sh': 'check.sh'

我做错了什么?

omqzjyyz

omqzjyyz1#

PATH check.sh中没有文件www.example.com。如果你想在 current 工作目录中找到一些东西,在那里找到它。

  1. subprocess.Popen(["./check.sh", "ABC"])

如果你想在与python脚本相同的目录中找到一些东西,导航到与python脚本相同的目录。

  1. import subprocess
  2. from pathlib import Path
  3. subprocess.Popen([str(Path(__file__).parent / "check.sh"), "ABC"])

相关问题