Python 3.2 - Конкатенация и форматирование строк работают не так, как ожидалось

Я хочу создать переменную «полное имя файла» из нескольких других переменных, но операции конкатенации строк и форматирования строк ведут себя не так, как я ожидал.

Мой код ниже:

file_date = str(input("Enter file date: "))

root_folder = "\\\\SERVER\\FOLDER\\"
file_prefix = "sample_file_"
file_extension = ".txt"

print("")
print("Full file name with concatenation: ")
print(root_folder + file_prefix + file_date + file_extension)
print("Full file name with concatenation, without file_extension: ")
print(root_folder + file_prefix + file_date)
print("")

print("")
print("Full file name with string formatting: ")
print("%s%s%s%s" % (root_folder, file_prefix, file_date, file_extension))
print("Full file name with string formatting, without file_extension: ")
print("%s%s%s" % (root_folder, file_prefix, file_date))
print("")

Когда я запускаю скрипт, выводятся следующие данные:

C:\Temp>python test.py
Enter file date: QT1

Full file name with concatenation:
.txtRVER\FOLDER\sample_file_QT1
Full file name with concatenation, without file_extension:
\\SERVER\FOLDER\sample_file_QT1


Full file name with string formatting:
.txtRVER\FOLDER\sample_file_QT1
Full file name with string formatting, without file_extension:
\\SERVER\FOLDER\sample_file_QT1

Я ожидал, что он объединит ".txt" в самом конце, за исключением того, что он заменит первые четыре символа строки на вместо этого.

Как мне присоединить переменную расширения к концу строки вместо того, чтобы она заменяла первые n символов строки?

В дополнение к тому, как решить эту конкретную проблему, я хотел бы знаю, почему я столкнулся с этим в первую очередь. Что я сделал не так / о каком поведении Python 3.2 мне неизвестно?

6
задан tgxiii 6 June 2011 в 18:26
поделиться