2009-12-10 7 views
5

मैं उपयोग कर रहा हूँ:tkFileDialog का उपयोग कर फ़ाइल का पूर्ण पथ कैसे प्राप्त करें?

file = tkFileDialog.askopenfile(parent=root, mode='rb', 
     filetypes=[('Subrip Subtitle File','*.srt')], title='Choose a subtitle file') 

एक फ़ाइल वस्तु उपयोगकर्ता द्वारा निर्दिष्ट मिलता है।

क्या कोई तरीका है कि मैं फ़ाइल फ़ाइल से इस फ़ाइल का पूर्ण पथ प्राप्त कर सकता हूं?

उत्तर

12
file = tkFileDialog.askopenfile(parent=root,mode='rb',filetypes=[('Subrip Subtitle File','*.srt')],title='Choose a subtitle file') 
abs_path = os.path.abspath(file.name) 
+2

यह तब तक काम करेगा जब तक उन दो पंक्तियों के बीच 'os.chdir() 'कॉल नहीं है। तो इस सवाल के मामले में यह शायद ठीक है, लेकिन यह सही नहीं है। मैं ऐसा करने का एक तरीका नहीं सोच सकता जो हमेशा मेरे सिर के ऊपर काम करेगा। –

+0

मुझे एक GUI ऐप में os.chdir() का उपयोग करने के किसी भी अच्छे कारण के बारे में पता नहीं है - कम से कम, कोई भी थ्रेड का उपयोग नहीं करता है, और यही एकमात्र तरीका है जिसे आप chdir() "बीच" स्रोत की दो पंक्तियां जिन्हें आप नियंत्रित करते हैं। –

+0

क्या इस दृष्टिकोण पर भरोसा किया जा सकता है? फ़ाइल ऑब्जेक्ट्स के .name विशेषता का वर्णन करने में, पायथन दस्तावेज़ कहते हैं: "यह केवल पढ़ने योग्य विशेषता है और सभी फ़ाइल-जैसी ऑब्जेक्ट्स पर मौजूद नहीं हो सकती है।" देखें: https://docs.python.org/2/library/stdtypes.html#file.name –

3

os.path.abspath आपको जो चाहिए, वह करना चाहिए, अगर मैं आपका प्रश्न सही ढंग से समझता हूं।

+0

यह अच्छी तरह से काम करता है अगर मैं एक स्ट्रिंग पारित, लेकिन मैं कैसे मेरी फाइल वस्तु :) – abcde123483

+2

@ulvund से स्ट्रिंग के रूप में पथ प्राप्त करने के लिए पता नहीं है, इस प्रयास करें: file.name फ़ाइल के लिए काम करता वस्तुओं –

+0

आह धन्यवाद अरबों लाख नादिया .. यह चाल है। – abcde123483

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

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