שימוש בsys.argv


#1

שלום,
יש לי שאלה בנוגע לשימוש ב sys.argv.
אומנם אראה את הדוגמא בשימוש ספריית boto3 אך נראה לי שהשימוש רלוונטי לכל.

import boto3
response = client.delete_message(
    QueueUrl='URL',
    ReceiptHandle='LONG ALPHA NUMRIC string'
)

עד כאן הכל עובד מושלם.
ברצוני להפעיל את הפקודה בכך שאריץ את קובץ הסקריפט עם משתנה חיצוני שאתן בשורת הפקודה לדוגמא:

script.py 123abc456

לשם כך חשבתי להשתמש בsys.argv, לכן הסקריפט כפי שאני מבין זאת יראה כך:

import sys
import boto3

rh= sys.argv
response = client.delete_message(
    QueueUrl='URL',
    ReceiptHandle='${rh}'
)

האם הסינטקס נכון?
ניסיתי אפשרויות רבות כגון

    ReceiptHandle='rh'
    (ReceiptHandle='(rh'
    ReceiptHandle=rh

אך למרות אני מקבל הודעות שגיאה שהסינטקס לא נכון, כגון:

type: <type 'list'>, valid types: <type 'basestring'>
-
botocore.errorfactory.ReceiptHandleIsInvalid: An error occurred (ReceiptHandleIsInvalid) when calling the DeleteMessage operation: The input receipt handle is invali

האם השימוש בsys.argv נכון ?
תודה


#2

טוב…

מצאתי את התשובה…

  rh = sys.argv[1]

   ReceiptHandle=(RECEIPTHANDLE)

ואז ניתן להפעיל את הפקודה עם משתנה בcli

script.py 123abc

#3

כן הרעיון שצריך לקחת את האיבר המתאים מהרשימה ולא את הרשימה כולה


#4

כן, כמובן (-:

אני חושב שאני עדיין מבולבל בהבדלים בין הסוגריים והמרכאות השונים ומשמעותם.