我正在嘗試在另一個 python 腳本中運行一個 python 腳本。這將運行 10 次並產生 10 個輸出。
我想跑program1.py
進去program2.py
。現在我program1.py
最初在其中包含一個 C 可執行文件,它需要 1 個命令行參數。
在program1.py
外觀如下所示:
import os
import sys
dataset = sys.argv[1]
os.system(f"/home/Dev/c4.5 -u -f {dataset}")
os.system(f"/home/Dev/c4.5rules -u -f {dataset}")
os.system(f"/home/Dev/c4.5rules -u -f {dataset} > Temp")
f = open('Temp')
# Some code
其中 c4.5 和 c4.5rules 是可執行文件的名稱。為了運行這個我正在使用python3 program1.py dataset_name
現在我想把它放在program1.py
裡面program2.py
,我正在嘗試以下方法:
import os
import subprocess
# Some code
for track in range(0, 10):
with open(f'Train_{track}', 'r') as firstfile, open(f'DF_{track}.data', 'w') as secondfile:
for line in firstfile:
secondfile.write(line)
os.system("/home/Dev/program1.py DF_track")
#subprocess.Popen("/home/Dev/program1.py DF_track", shell=True)
我只想獲得program1.py
10 次的輸出,並希望DF_track
用作每個輸出生成的命令行輸入。
使用上述方法我得到了很多錯誤。請幫忙。
編輯_1:
實際上,每當我嘗試運行時,我的光標都不起作用,它凍結了,因此無法複製錯誤。
這裡是其中的一些 :
1. attempt to perform an operation not allowed by security policy.
2. syntax error : word expected (expecting ")")
想像一下我有 2 個文件,第一個文件是a.py
,另一個是b.py
,我想調用a.py
from b.py
.
a.py 的內容是:
print('this is the a.py file')
b.py 的內容是:
import os
stream = os.popen('python3 a.py')
output = stream.read()
print(output)
現在,當我b.py
從終端調用時,我得到我期望的輸出是 a.py 打印語句
user@mos ~ % python3 b.py
this is the a.py file
你也可以用subprocess
而不是os
模塊來做到這一點。
這是我在網上找到的一個不錯的博客,我從那裡獲得了代碼:https : //janakiev.com/blog/python-shell-commands/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句