通过shell给python传入参数并执行
shell0.py
import sys
dictf = dict()
dictf['seizure_trainval'] = sys.argv[1]
dictf['seizure_test'] = sys.argv[2]
shell1.py
from shell0 import *
import time
time.sleep(5)
print("*****shell1****")
print(dictf['seizure_trainval'])
print(dictf['seizure_test'])
print("end")
shell代码 test.sh
python shell1.py [1,2,3,4] [5]
python shell1.py [1,2,3,5] [4]
python shell1.py [1,2,4,5] [3]
在ubuntu运行test.sh
在终端命令行输入 bash test.sh
$ bash test.sh
运行结果
*****shell1****
[1,2,3,4]
[5]
end
*****shell1****
[1,2,3,5]
[4]
end
*****shell1****
[1,2,4,5]
[3]
end
前台输入 会等第一个py文件运行完,再运行第二个py文件。
但是shell只能传入字符串,我们python文件需要的是列表,遂改于
test.sh
python shell.py "2,3,4,5" "1"
shell.py
import sys
dictf = dict()
dictf['seizure_trainval'] = sys.argv[1]
dictf['seizure_test'] = sys.argv[2]# 把字符串改为列表
A = list(dictf['seizure_trainval'].strip(',').split(','))
for i in range(len(A)):
A[i] = int(A[i])
dictf['seizure_trainval'] = A
B= list(dictf['seizure_test'].strip(',').split(','))
for i in range(len(B)):
B[i] = int(B[i])
dictf['seizure_test'] = Bprint(dictf['seizure_trainval'])
print(dictf['seizure_test'])