2013-08-17 9 views
5

कुछ फ़ाइल नाम संख्या 1-32 है जहां और मैं की तरह एक पाश में है ताकि उन्हें खोलना चाहते हैं:फ़ाइल नाम के हिस्से के रूप में मैं चर के साथ पायथन में फ़ाइलों को कैसे खोलूं?

i = 1 
while i < 32: 
filename = "C:\\Documents and Settings\\file[i].txt" 
f = open(filename, 'r') 
text = f.read() 
f.close() 

लेकिन इस फ़ाइल के लिए लग रहा है "फ़ाइल [i] .txt" file1.txt के बजाय , file2.txt और इतने पर। मैं वैरिएबल को डबल कोट्स के अंदर एक चर कैसे बना सकता हूं? और हाँ मुझे पता है कि यह इंडेंट नहीं है, कृपया मुझे नहीं लगता कि मैं बेवकूफ हूँ।

मुझे लगता है कि यह काम हो सकता है: फ़ाइल नाम का निर्माण, जैसा कि आपने किसी अन्य स्ट्रिंग है जो एक चर शामिल निर्माण चाहते हैं:

filename = "C:\\Documents and Settings\\file" + str(i) + ".txt" 

या आप संख्या फ़ॉर्मेट करने के लिए और अधिक विकल्प की जरूरत है:

filename = "C:\\Documents and Settings\\file%d.txt" % i 
+0

ऐसा लगता है कि आप अपने खुद के सवाल का जवाब दे के बजाय %.2d उपयोग कर सकते हैं। – lurker

उत्तर

3

पहले, while i <= 32 करने के लिए अपने पाश बदल सकते हैं या आप इसे के नाम पर 32 के साथ फ़ाइल निकाल देंगे। आपका दूसरा विकल्प filename = "C:\\Documents and Settings\\file%d.txt" % i काम करना चाहिए।

आपकी फ़ाइलों में संख्या 0 गद्देदार, 'file01.txt', 'file02.txt' की तरह हैं, तो आप सादे पुराने% d

+0

यदि फ़ाइलें 0 गद्देदार हैं तो हम फ़ाइल नाम के रूप में भी कर सकते हैं = "सी: \\ दस्तावेज़ और सेटिंग्स \\ file0% d.txt"% i। मुझे लगता है कि यह भी काम करना चाहिए। –

+1

ऐसा मत करो। यह मान लेगा कि 1 से 32 तक प्रत्येक नंबर से पहले 0 है।% .2 डी केवल 0 नंबर जोड़ देगा यदि केवल एक नंबर है। 10-32 से प्रत्येक नंबर के लिए, यह संख्याएं उतनी ही छोड़ देगा जितनी वे हैं। –

+0

यदि फ़ाइलों के अंत में चार पूर्णांक हैं तो हम फ़ाइल नाम के रूप में भी कर सकते हैं = "सी: \\ दस्तावेज़ और सेटिंग्स \\ फ़ाइल% .4d.txt"% i। मुझे लगता है कि यह भी काम करना चाहिए। फ़ाइल नाम की तरह फ़ाइल 1234 है। –

3

आप पहले ही एक उत्तर प्रदान कर चुके हैं। Btw, मैन्युअल रूप से बुला close() के बजाय with संदर्भ प्रबंधक का उपयोग करें:

i = 1 
while i < 32: 
    filename = "C:\\Documents and Settings\\file%d.txt" % i 
    with open(filename, 'r') as f: 
     print(f.read()) 
1

हाँ, विकल्प आप काम करेंगे दिया, क्यों नहीं बस इसे बाहर का परीक्षण?

filename = "C:\\Documents and Settings\\file" + str(i) + ".txt" 

या

filename = "C:\\Documents and Settings\\file%d.txt" % i 
संबंधित मुद्दे

 संबंधित मुद्दे