我正在尝试使用 python 调用 bash 脚本,但我需要它是最后执行的事情。
我想只要在我的脚本末尾添加这个就可以了:
val = subprocess.check_call("/scripts/files.sh '%s'" % title, shell=True)
但是它是在上面的代码之前执行的,为什么?
上面最后一行:
print(q_1)
print(q_2)
print(q_3)
cursor.execute(q_1)
cursor.execute(q_2)
cursor.execute(q_3)
mariadb_connection.commit()
cursor.close()
mariadb_connection.close()
我确实在所有这些代码之前使用
val = subprocess.check_call
来运行另一个 bash 脚本,如果这很重要的话
我如何确定我的脚本将是最后执行的?
假设您的脚本看起来像这样
obj = MySqlSomething()
things
more things
val = subprocess.check_call(x)
如果类
MySqlSomething
有析构函数,则当您脱离脚本末尾并且 check_call
超出范围时,它将在 obj
之后调用。解决方法是让这种情况更早发生,只需将这些内容移动到一个函数中即可:
def main_main():
obj = MySqlSomething()
things
more things
main_main()
val = subprocess.check_call(x)
通过这种安排,
obj
在 main_main
末尾超出范围。
Python 是脚本语言,这意味着这些行是从第一行到最后一行执行的。 您所要做的就是将命令放在 Python 脚本的末尾