簡體   English   中英

從main.py腳本在子目錄中執行sh?

[英]Execute sh in subdirectory from main.py script?

我正在嘗試做以下事情。 我有一個帶有此目錄樹的python項目:

Project dir
  |
  |___main.py
  |___module
       |
       |__a.py
       |__a.sh

a.py有一個帶有運行腳本的方法的類:

class A():
    def run():
        os.system('a.sh')

然后a.sh創建一個文件:

touch a.txt

然后main.py實例化一個類A的對象並調用run()

a = A()
a.run()

調用main ,出現一個錯誤,提示script a.sh is not found 我知道為什么會這樣,這是因為工作目錄等於項目的根路徑,但是如何使它工作,以使創建的文件最終位於根路徑中?

我想調用main.py並以該配置結束。

Project dir
  |
  |___a.txt
  |___main.py
  |___module
       |
       |__a.py
       |__a.sh

我可以取代調用a.sha.py

os.system('module/a.sh')

它可以工作,但對我來說看起來並不干凈。

a.py模塊中的代碼可以提取其所在目錄的名稱,並在os.system()調用中使用該名稱。 這就是我的意思:

文件a.py

import os

class A():
    def run(self):
        my_directory = os.path.dirname(__file__)
        script_path = os.path.join(my_directory, 'a.sh')
        os.system(script_path)

a = A()
a.run()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM