#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 ""