微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将字符串参数从 bash 脚本传递给 python3

如何解决将字符串参数从 bash 脚本传递给 python3

我正在尝试使用 bash 脚本从文本文件中读取多个目录位置,并将其作为参数传递给另一个 python 脚本。目录名包含空格,显示

test.py: error: unrecognized arguments: 1B/PHASE/PHASE_90

我正在使用以下 bash 脚本:

filename='filter_directory.txt'
line_counter=1
while read line; do
# reading each line
    echo "Processing Directorie: $line_counter : $line"
    python3 test.py -i $line
    line_counter=$((line_counter+1))
    echo "Finish Directorie: $line_counter!!!"
    done < $filename

test.py 是:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--input","-i",type=str,default='./input',help='Calculation LUMA image folder')
arg = parser.parse_args()
input_path = arg.input
print(input_path)

filter_directory.txt 包含:

version_of_study/Study 1B/PHASE/PHASE_90
version_of_study/Study 1B/PHASE/PHASE_91
version_of_study/Study 1B/PHASE/PHASE_92
version_of_study/Study 1B/PHASE/PHASE_93

你能帮我用bash脚本把目录名从文本文件导入python吗?

解决方法

您应该像 $line 这样的 quote python3 test.py -i "$line" 来分组参数。您可以使用 shellcheck 之类的工具来识别 shell 脚本中的此类问题。 This article 很好地介绍了正确使用/避免变量扩展和分词的不同方法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。