Python除了Python脚本之外,还有其他方法可以从Python脚本运行Python脚本吗操作系统?

2024-04-18 04:29:38 发布

您现在位置:Python中文网/ 问答频道 /正文

除了在python脚本中运行python脚本,还有其他方法吗操作系统?在一个python脚本的末尾,我试图运行另一个python脚本,但是遇到了一个权限错误。这可能是由于我的访问权限,或者可能有更好的方法在Cloudera Data Science Workbench中运行,在那里我不会遇到权限问题?你知道吗

num_of_rows_parsed_url_df = len(parsed_url_df)
num_not_on_maj_one_mil = len(parsed_url_df[parsed_url_df.GlobalRank == 1000001])
print "Number of Rows: ",num_of_rows_parsed_url_df
Number of Rows:  34091
print "Number of Requests not on the Majestic Million: ", num_not_on_maj_one_mil
Number of Requests not on the Majestic Million:  17613

import os
os.system("Proxy/Proxy_Analytics/AWS_API_Cost.py")
32256sh: 1: Proxy/Proxy_Analytics/AWS_API_Cost.py: Permission denied
os.system("Proxy/Proxy_Analytics/AWS_API_Cost.py 1")
32256sh: 1: Proxy/Proxy_Analytics/AWS_API_Cost.py: Permission denied

Tags: ofpy脚本awsapiurlnumberdf
1条回答
网友
1楼 · 发布于 2024-04-18 04:29:38

不仅os.system不是唯一的方法,而且是一种特别糟糕的方法。os.system是一种安全隐患,几乎应该100%避免。你知道吗

听起来你想要的是subprocess.run。如果要使用运行当前Python脚本的解释器运行另一个Python脚本,可以执行以下操作:

import os
import subprocess
import sys

subprocess.run([sys.executable, os.path.abspath('path/to/script.py')])

也就是说:您确定要将另一个脚本作为一个单独的进程运行吗?很可能,更好的解决方案是提取一个可重用的Python函数库,然后import将该库提取到各种脚本中。你知道吗

创建一个Python模块集合并将其打包到一个可重用的库中可能是一项非常繁琐的任务,因为它将您从“一个无关脚本集合”转移到“一个打包的编程产品”。如果您有需要开始共享实现细节的脚本,那么您可能应该开始将共享代码视为库。你知道吗

相关问题 更多 >