5

मैं कई अन्य चर से "पूर्ण फ़ाइल नाम" चर बनाना चाहता हूं, लेकिन स्ट्रिंग कॉन्सटेनेशन और स्ट्रिंग प्रारूप संचालन मेरे द्वारा अपेक्षित तरीके से व्यवहार नहीं कर रहे हैं।पायथन 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" जोड़ करने के लिए इसे छोड़कर इसके बजाय स्ट्रिंग के पहले चार वर्णों को प्रतिस्थापित करना।

स्ट्रिंग के पहले एन अक्षरों को बदलने के बजाय स्ट्रिंग के अंत में एक्सटेंशन चर को कैसे जोड़ूं?

इस विशेष समस्या को हल करने के तरीके के अलावा, मैं जानना चाहता हूं कि मैं इसे पहले स्थान पर क्यों चला गया। मैंने गलत क्या किया/क्या पाइथन 3.2 व्यवहार मुझे पता नहीं है?

उत्तर

8

मुझे लगता है कि विधि इनपुट अपने उदाहरण में प्रयुक्त, इसलिए जैसे:

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

अंत में एक गाड़ी वापसी चरित्र लौट जा सकता है।
यह कर्सर को लाइन की शुरुआत में वापस जाने का कारण बनता है जब आप इसे प्रिंट करने का प्रयास करते हैं। आप इनपुट() के वापसी मूल्य को ट्रिम करना चाहते हैं।

+0

की पुष्टि की। ओपी के कोड को चलाने के बाद, 'repr (file_date) '' QT1 \ r'' –

+0

मुझे लगा कि यह कुछ आसान था। यह लाइन फीड के बजाय कैरिज रिटर्न "\ r" जोड़ रहा था, लेकिन आपने मुझे सही दिशा में चलाने में मदद की। धन्यवाद! – tgxiii

+3

पायथन 3 में, इनपुट एक स्ट्रिंग देता है, इसलिए str का उपयोग करने की कोई आवश्यकता नहीं है। – MRAB

3

उपयोग इस लाइन के बजाय लाइन फ़ीड से छुटकारा पाने के:

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