Python — Как передать пустой аргумент — иногда мне нужен пустой cc для электронного письма

#python #email #argv

Вопрос:

Я использую exe команду c для вызова скрипта python с аргументами для отправки электронной почты. Иногда я хочу сохранить cc как пустой, но когда я это делаю, я получаю ошибку

 IndexError: list index out of range
 

Как я могу передать пробел cc в качестве аргумента скрипту python ?

 FileName - attachment <br/>
Subject - message body <br/>
rec_list - 'To' list <br/>
Filepath - location of file to attach <br/>
Email_CC - 'CC' list  - *`this is null or blank`* <br/>
Email_BCC - 'BCC' list <br/>

$G_SendMail_Return=exec('cmd.exe','[$GV_FileName3]'||' '||'[$G_Subject]'||' '||'[$G_Rec_List]'||' '|| '[$GV_Filepath]'||' '|| '[$G_Email_CC]'||' '|| '[$G_Email_BCC]' ,8);
 

Код

 import smtplib <br/>
from email.mime.text import MIMEText <br/>
from email.mime.multipart import MIMEMultipart <br/>
from email.mime.base import MIMEBase <br/>
from email import encoders <br/>
import os.path <br/>
import sys <br/>

arg1 = sys.argv[1]; <br/>
arg2 = sys.argv[2]; <br/>
arg3 = sys.argv[3]; <br/>
arg4 = sys.argv[4]; <br/>
arg5 = sys.argv[5]; <br/>
 

Ошибка:

 sys.argv[5];  IndexError: list index out of range
 

Комментарии:

1. Пожалуйста, покажите свой код, где вы получили эту ошибку

2. Вам следует проверить документацию argparse

Ответ №1:

Вы можете использовать len(sys.argv) , чтобы подсчитать, сколько входных аргументов вы на самом деле получаете. И сделайте желаемый аргумент пустым, используя что-то вроде этого (просто пример, скорректируйте в зависимости от вашей ситуации).:

 arg5 = sys.argv[5] if len(sys.argv) >= 6 else ""