gpt4 book ai didi

python - 使用 argparse 传递参数后如何将 python 脚本作为批处理作业运行?

转载 作者:太空宇宙 更新时间:2023-11-03 15:16:47 25 4
gpt4 key购买 nike

我想知道使用 argparse 后是否可以将 python 脚本作为 bash 作业运行?我尝试首先使用 argparse 在 python 脚本文件中传递一个参数,然后使用以下命令:

bash bash1.sh 

运行 bash 文件,该文件将运行 python 脚本文件。这导致了错误

message_script.py: error: too few arguments 

此错误是由于 argparse 参数未被识别而导致的。有什么方法可以使用 argparse 传递参数,然后将 python 脚本作为批处理作业运行吗?

message_script.py的内容:

import sys
import random
import numpy as np
import argparse
from PIL import Image
import matplotlib.pyplot as plt

#Input of Data File
#Proprtion Alpha
parser = argparse.ArgumentParser()
parser.add_argument("Alpha", help = "proportion of pixels to be embedded in cover image")
args = parser.parse_args()
alpha = args.Alpha
alpha = float(alpha) #args.alpha came back as a string hence needed to be converted to float

#n is the number of pixels in cover image
n = 512*512 #since all images in BossBase testbench are 512 by 512

#Length of message to be embedded in cover image
length_msg = (alpha * n)
len_msg = int(length_msg)

#Generates a random message, a 1D vector consisting of 1s and 0s
msg = np.random.randint(2, size= len_msg)

#Save message in text format representing each bit as 0 or 1 on a separate line
msg_text_file = open("/home/ns3/PycharmProjects/untitled1/msg_file.txt", "w") #Path of Data File
msg_text_file.write("\n".join(map(lambda x: str(x), msg)))
msg_text_file .close()

bash1.sh的内容:

#!/bin/sh
python message_script.py

最佳答案

您需要将参数传递给 python 脚本。如果你知道参数的确切数量,你可以这样写:

#!/bin/bash
# passing two arguments
python message_script.py "$1" "$2"

或者全部:

#!/bin/bash
python message_script.py "$@"

关于python - 使用 argparse 传递参数后如何将 python 脚本作为批处理作业运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43819254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com