2012-07-05 11 views
33

मेरे पास एक पायथन स्क्रिप्ट है जो ftplib का उपयोग करके एफ़टीपी पर एक फ़ाइल डाउनलोड करती है।मैं पाइथन से फ़ाइल के अंतिम संशोधित समय को कैसे सेट कर सकता हूं?

मेरे वर्तमान डाउनलोड कोड सिर्फ एफ़टीपी lib डॉक्स में उदाहरण की तरह दिखता है:

ftp.retrbinary('RETR README', open('README', 'wb').write) 

अब मैं एक आवश्यकता है कि फाइल एफ़टीपी पर डाउनलोड पर फ़ाइल के रूप में ही अंतिम संशोधित समय की जरूरत है है एफ़टीपी सर्वर स्वयं। मान लीजिए कि मैं ftp.retrlines('list') से समय निकाल सकता हूं, मैं डाउनलोड की गई फ़ाइल पर संशोधित समय कैसे सेट कर सकता हूं?

यदि यह मायने रखता है तो मैं यूनिक्स आधारित ओएस पर हूं।

उत्तर

43

यदि आप इसे सीधे पाइथन से करना चाहते हैं, तो आप os.utime देख रहे हैं। docs आपको और जानकारी दे सकता है।

+0

है कि मैं के लिए क्या देख रहा था, धन्यवाद – jdeuce

4

ऐसा करने के 2 तरीके हैं। एक ओएसटाइम उदाहरण है जिसके ऊपर आवश्यक है यदि आप उस फ़ाइल पर टाइमस्टैम्प सेट कर रहे हैं जिसमें संदर्भ आंकड़े नहीं हैं। हालांकि, अगर आप "shutil.copy()" वाली फ़ाइलों की प्रतिलिपि बना रहे हैं, तो आपके पास संदर्भ फ़ाइल है। फिर यदि आप अनुमति बिट्स, अंतिम एक्सेस समय, अंतिम संशोधन समय चाहते हैं, और झंडे भी कॉपी किए गए हैं, तो आप "shutil.copy()" के तुरंत बाद "shutil.copystat()" का उपयोग कर सकते हैं।

मुझे नहीं पता कि वे "shutil.copy()" में झंडे क्यों नहीं जोड़ते हैं यह एक ही कमांड में करता है। ऐसा लगता है कि इसे विभिन्न लेखकों द्वारा लागू किया गया था। एक ने प्रतिलिपि लागू की और एक ने को कॉपीस्टैट को पूर्व में लापता फीचर भरने के लिए लागू किया।

और फिर वहाँ "shutil.copy2" जो एक बार में दोनों क्या करने का इरादा है ...

19

उपयोग os.utime:

import os 

os.utime(path_to_file, (access_time, modification_time)) 
+0

अधिक विस्तृत उदाहरण: https://www.tutorialspoint.com/python/os_utime.htm – kashiraja

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

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