0

Как объединить фиксированную строку и переменную в Python

13

Проблема с использованием аргумента командной строки в заголовке письма

Я пытаюсь включить имя файла 'main.txt' в заголовок письма. Для этого я передаю имя файла через командную строку. Однако при выполнении программы возникает ошибка. Вот код, который я использую:

python sample.py main.txt  # Запуск 'python' с аргументом

msg['Subject'] = "Auto Hella Restart Report "sys.argv[1]  # Строка, где я использую переданный аргумент

Как я могу исправить эту проблему?

4 ответ(ов)

0

Я предполагаю, что вы хотели сделать следующее:

msg['Subject'] = "Отчет о перезапуске Auto Hella " + sys.argv[1]
# Для конкатенации строк в Python используйте       ^
0

Ваш код Python, кажется, пытается вывести строку переменной variable и объединить её с другим текстом. Однако, есть некоторые нюансы, которые стоит учесть. Вот исправленный код, который должен работать корректно:

  1. Ваша переменная содержит пробелы и многоточие в начале. Убедитесь, что это именно то, что вы хотите.

Вот как выглядит корректный код:

variable = " Hello..."  # Строка с пробелом и многоточием
print(variable)  # Вывод строки
print("This is the Test File " + variable)  # Конкатенация строк

Для примера с целочисленным типом используйте следующую конструкцию:

variable = "  10"  # Строковое представление числа с пробелами
print(variable)  # Вывод строки
print("This is the Test File " + variable)  # Конкатенация строк

Также стоит отметить, что если variable изначально является числом, то для его правильного отображения в строке вы можете использовать str():

variable = 10  # Целое число
print(variable)  # Вывод целого числа
print("This is the Test File " + str(variable))  # Конкатенация строк с использованием str()

Надеюсь, это поможет вам в дальнейшей разработке! Если у вас есть дополнительные вопросы, не стесняйтесь спрашивать.

0

Попробуйте следующий код:

msg['Subject'] = "Auto Hella Restart Report " + sys.argv[1]

Оператор + в Python переопределен для конкатенации строк. Это означает, что, если вы хотите объединить несколько строк в одну, вы можете использовать данный оператор. В вашем случае, он объединяет строку "Auto Hella Restart Report " и значение, переданное в качестве первого аргумента командной строки (sys.argv[1]). Убедитесь, что sys.argv[1] содержит корректное значение, иначе код может вызвать ошибку, если аргумент не будет передан.

0

В Python 3.6 и более поздних версиях вы можете использовать f-строки для форматирования строк. Вот как можно установить заголовок "Subject" для сообщения:

msg['Subject'] = f"Авто-отчет о перезапуске Hella {sys.argv[1]}"

Здесь sys.argv[1] будет содержать первый аргумент командной строки, который вы передали при запуске скрипта. Убедитесь, что вы импортировали модуль sys в начале вашего скрипта:

import sys

Таким образом, ваш код будет работать корректно.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь