2010-01-27 4 views
6

मुझे सीपीथॉन का उपयोग कर कॉर्पोरेट शेयरपॉइंट साइट पर एक फ़ाइल डाउनलोड करने की आवश्यकता है। मौजूदा कोडबेस मुझे कोड को पोर्ट किए बिना Ironpython का उपयोग करने से रोकता है, इसलिए .NET की WebClient लाइब्रेरी बाहर है। मैं उपयोगकर्ता को नेटवर्क क्रेडेंशियल्स के लिए उपयोगकर्ता को सहेजने के बिना संकेत देने के बिना फ़ाइल डाउनलोड करना चाहता हूं। मैं अन्य पुस्तकालयों की कोशिश की, लेकिन वे सभी छोटी-आने के लिए किया था:एनटीएलएम/एसएसपीआई द्वारा संरक्षित फ़ाइल को डाउनलोड करने के बिना Win32 पर पायथन का उपयोग कर प्रमाण पत्र के लिए प्रसंस्करण के बिना?

  • urllib2 प्लस python-ntlm: आवश्यकता है उपयोगकर्ता/इंटरनेट एक्सप्लोरर के
  • COM स्वचालन उपलब्ध कराई जाने वाली पारित: क्लिक करने के लिए 'सहेजें'
  • उपयोगकर्ता की आवश्यकता है subprocesswget या cURL का उपयोग कर: या तो उपयोगकर्ता का अनुरोध नहीं करता प्रमाणित करने के लिए/पारित

मैं pywin32 में कुछ भी नहीं मिला है कि ली लग रहा है नहीं मिल सका के लिए यह urllib2 में hooks या समकक्ष कार्यक्षमता प्रदान करता है। तो, क्या क्रेडेंशियल्स का अनुरोध किये बिना फ़ाइल डाउनलोड करने का कोई तरीका है और उपयोगकर्ता को 'सेव' पर क्लिक करने के लिए प्रेरित किए बिना?

उत्तर

4

मैं some VB code from a Microsoft support page खोजने के लिए समाप्त हुआ जो urlmon.dll से फ़ंक्शन का उपयोग करता है, मैंने इसे ctypes कोड की एक पंक्ति के साथ दोहराया और यह वही किया जो मुझे करने की आवश्यकता थी।

ctypes.windll.urlmon.URLDownloadToFileA(0,url,local_file_name,0,0) 
  • url (इस मामले में, एक एक्सेल एक शेयरप्वाइंट साइट पर फ़ाइल)
  • local_file_name बचाया जा करने के लिए फ़ाइल की स्थानीय पथ और नाम है संसाधन का स्थान है।

यह कोई संकेतों के साथ तार भर में साख पारित कर दिया।

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

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