2011-02-24 14 views
13

पायथन में मैं एक फाइल कर रहा हूं:मैं एक विशिष्ट पथ पर एक फाइल कैसे बना सकता हूं?

f = open("test.py", "a") 

फ़ाइल कहां बनाई गई है? मैं एक विशिष्ट पथ पर एक फाइल कैसे बना सकता हूं?

f = open("C:\Test.py", "a") 

त्रुटि देता है।

+0

आपको कौन सी त्रुटि मिलती है? –

+0

इस प्रश्न के पहले संपादन ने समस्या को अस्पष्ट कर दिया, मैंने इसे वापस रखा है। –

उत्तर

13

फ़ाइल पथ "c:\Test\blah" में '\ T' के लिए एक टैब वर्ण होगा। आप उपयोग करने की आवश्यकता है या तो:

"C:\\Test" 

या

r"C:\Test" 
+2

आप पथ विभाजक के रूप में विंडोज़ के तहत पाइथन में स्लैश '/' का उपयोग भी कर सकते हैं: '" सी:/टेस्ट "' –

+0

I इन चीजों को करने की कोशिश करें लेकिन पायथन मुझे वापस लौटाता है: अनुमति अस्वीकार कर दी गई ... धन्यवाद !! – igferne

+0

मैं पागल हूँ !! व्यवस्थापक के रूप में इसे निष्पादित करना सकारात्मक है !! धन्यवाद!! – igferne

1

फ़ाइल कहां बनाई गई है?

एप्लिकेशन की वर्तमान कार्य निर्देशिका में। इसे बदलने के लिए आप os.getcwd का उपयोग कर सकते हैं, और इसे बदलने के लिए os.chdir का उपयोग कर सकते हैं।

मूल निर्देशिका में फ़ाइल खोलना संभवतः विशेषाधिकारों की कमी के कारण विफल रहता है।

2

यह फ़ाइल को बंद करने के बाद बनाया जाएगा (लिखने के साथ या बिना)। जैसे

filepath = os.path.join("c:\\","test.py") 
+0

क्षमा करें, लेकिन मुझे समझ में नहीं आता ... मैं सृजन के मार्ग को क्या संशोधित कर सकता हूं? – igferne

0

फ़ाइल बनाई गई है अपना रास्ता बनाने के लिए जहाँ भी अजगर दुभाषिया की जड़ शुरू किया गया था os.path.join() का प्रयोग करें।

उदाहरण के लिए, आप /home/user/program में अजगर शुरू करते हैं, तो फ़ाइल "test.py" पर /home/user/program/test.py

+0

जो सही है ...और किसी अन्य पथ पर प्रतिलिपि बनाने के लिए फ़ाइल के पथ को स्क्रिप्ट से मैं क्या प्राप्त कर सकता हूं? – igferne

+0

जैसा कि PiotrLegnica ने कहा था, वर्तमान निर्देशिका प्राप्त करने के लिए 'os.cwd' का उपयोग करें, जिसे आप एक स्ट्रिंग में स्टोर कर सकते हैं और अपनी इच्छानुसार उपयोग कर सकते हैं। 'ओएस' मॉड्यूल में फ़ाइल हैंडलिंग के लिए बहुत अच्छी सुविधाएं हैं। [ओएस मॉड्यूल] (http://docs.python.org/library/os.html) – TyrantWave

0

च = खुला स्थित होगा ("test.py", "एक") जो कुछ भी निर्देशिका में बन जाती है पायथन फ़ाइल से चलाया जाता है।

मुझे अन्य त्रुटि के बारे में निश्चित नहीं है ... मैं विंडोज़ में काम नहीं करता हूं।

0

Besty अभ्यास का उपयोग करने के '/' और एक तथाकथित 'कच्चे स्ट्रिंग' अजगर में फ़ाइल पथ को परिभाषित करने के लिए है।

path = r"C:/Test.py" 

हालांकि, एक सामान्य कार्यक्रम C: ड्राइव रूट निर्देशिका में लिखने की अनुमति नहीं हो सकता है। आपको अपने प्रोग्राम को ऐसा करने की अनुमति देनी पड़ सकती है, या कुछ और उचित चुनना पड़ सकता है क्योंकि आपको शायद ऐसा करने की आवश्यकता नहीं है।

+1

पर कॉल करके रूट निर्देशिका (' सी: \ 'विंडो या यूनिक्स-जैसी प्रणालियों पर'/'प्राप्त कर सकते हैं) यदि आप पथ विभाजक के रूप में आगे स्लैश का उपयोग कर रहे हैं , तो आप कच्चे स्ट्रिंग की आवश्यकता को खत्म कर रहे हैं। –

+0

ओ आप नहीं करते हैं, क्योंकि फ़ाइल नाम उनके नामों में हो सकते हैं। यह मूर्खतापूर्ण है, यह बेकार है, लेकिन यह कानूनी है। –

9

मैं क्रॉस प्लेटफ़ॉर्म में परेशानी से बचने के लिए os मॉड्यूल का उपयोग करने की सलाह देता हूं। (विंडोज़, लिनक्स, मैक)

कारण यदि निर्देशिका मौजूद नहीं है, तो यह एक अपवाद वापस कर देगा।

import os 

filepath = os.path.join('c:/your/full/path', 'filename') 
if not os.path.exists('c:/your/full/path'): 
    os.makedirs('c:/your/full/path') 
f = open(filepath, "a") 

यदि यह किसी सिस्टम या किसी चीज़ के लिए एक फ़ंक्शन होगा, तो आप त्रुटि नियंत्रण को जोड़ने/छोड़कर इसे सुधार सकते हैं।

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