2010-03-19 9 views
6

मैं अपनी डेस्कटॉप निर्देशिका में एक निर्देशिका (नाम 'डाउनलोड') बनाना चाहता हूं; इस काम के ?:पायथन: निर्देशिका बनाना

import os 
os.mkdir('~/Desktop/downloaded/') 
+0

का उपयोग डेस्कटॉप dir अन्य भाषा में, तो ????? किसी भी भाषा में डेस्कटॉप पर कैसे पता लगाएं? – Ernie

+0

"mkdir -p" के बराबर कोड के लिए http://stackoverflow.com/q/600268/319741 –

उत्तर

14

आप बस ~ उपयोग नहीं कर सकते आप एक उचित पथ के साथ ~ को बदलने के लिए os.path.expanduser का उपयोग करना चाहिए नहीं है।

+1

देखें ताकि आप उस कोड को 'os.mkdir (os.expanduser (' ~/डेस्कटॉप/डाउनलोड// ')) '। – LeafStorm

+3

@ लेफस्टॉर्म 'os.path.expanduser', 'os.expanduser' नहीं। –

8

उपयोग

import os 
os.mkdir(os.path.expanduser("~/Desktop/downloaded")) 

~ चरित्र एक POSIX खोल परंपरा है कि घर वातावरण चर की सामग्री का प्रतिनिधित्व करता है। टाइपिंग

$ mkdir $HOME/Desktop/downloaded 

मैं क्या कहते हैं सत्यापित करने के लिए गृह वातावरण चर के रूप में बदलने का प्रयास करें

$ mkdir ~/Desktop/downloaded 

यह एक ही है: तो, आप एक खोल में टाइप जब।

चूंकि यह एक शेल सम्मेलन है, यह ऐसा कुछ है जो न तो कर्नेल विशेष रूप से व्यवहार करता है, न ही पायथन, और अजगर os.mkdir फ़ंक्शन कर्नेल mkdir(2) सिस्टम कॉल के आसपास सिर्फ एक रैपर है। एक सुविधा के रूप में, पायथन होम env var की सामग्री के साथ tilde को प्रतिस्थापित करने के लिए os.path.expanduser फ़ंक्शन प्रदान करता है।

$ HOME=/tmp 
$ python 
Python 2.6.4 (r264:75706, Mar 2 2010, 00:28:19) 
[GCC 4.3.4] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import os 
>>> os.path.expanduser("~/dada") 
'/tmp/dada' 
1

एक और तरीका है, os.environ

import os 
home=os.environ["HOME"] 
path=os.path.join(home,"Desktop","download") 
try: 
    os.mkdir(path) 
except IOError,e: 
    print e 
else: 
    print "Successful" 
संबंधित मुद्दे