我想從其他幾個變量創建一個「完整文件名」變量,但字符串連接和字符串格式操作的行爲並不像我期望的那樣。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的行爲是什麼?
證實。在運行OP的代碼後,'repr(file_date)'是''QT1 \ r'' – 2011-06-06 18:38:22
我有一種感覺,就是這麼簡單。它添加了回車符「\ r」而不是換行符,但是您幫助我引導了正確的方向。謝謝! – tgxiii 2011-06-06 18:43:46
在Python 3中,輸入返回一個字符串,所以不需要使用str。 – MRAB 2011-06-06 18:48:52