पायथन में फ़ाइल निर्माण और संशोधन तिथि / समय कैसे प्राप्त करें?


932

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

पायथन में फ़ाइल निर्माण और संशोधन प्राप्त करने के लिए सबसे अच्छा क्रॉस-प्लेटफ़ॉर्म तरीका क्या है ?date/times


57
आपको क्रॉस-प्लेटफ़ॉर्म तरीके से फ़ाइल निर्माण समय नहीं मिल सकता है। देखें docs.python.org/library/os.path.html#os.path.getctime
ग्लिफ़

जवाबों:


620

क्रॉस-प्लेटफ़ॉर्म तरीके से किसी प्रकार की संशोधन तिथि प्राप्त करना आसान है - बस कॉल करें और जब फ़ाइल अंतिम बार संशोधित की गई थी , तब आपको यूनिक्स टाइमस्टैम्प मिलेगा ।os.path.getmtime(path)path

दूसरी ओर, फ़ाइल निर्माण की तारीखें प्राप्त करना , तीन बड़े OS के बीच भी अलग-अलग और मंच पर निर्भर है:

  • पर विंडोज , एक फ़ाइल की ctime(कम से प्रलेखित https://msdn.microsoft.com/en-us/library/14h5k7ff.aspx ) ने अपने निर्माण तिथि संग्रहीत करता है। आप इसे पायथन में os.path.getctime()या .st_ctimeकॉल के परिणाम की विशेषता तक पहुंचा सकते हैं os.stat()। यह यूनिक्स पर काम नहीं करेगा , जहां ctime आखिरी बार फ़ाइल की विशेषताओं या सामग्री को बदल दिया गया था
  • पर मैक है, साथ ही कुछ अन्य यूनिक्स आधारित OSes, तो आप उपयोग कर सकते हैं .st_birthtimeके लिए एक कॉल के परिणाम की विशेषता os.stat()
  • पर लिनक्स , इस अजगर के लिए एक सी विस्तार लेखन के बिना वर्तमान में असंभव है, कम से कम। हालाँकि आमतौर पर लिनक्स के साथ उपयोग की जाने वाली कुछ फाइल सिस्टम निर्माण तिथियों (उदाहरण के लिए, ext4उन्हें स्टोर करती हैं st_crtime) में, लिनक्स कर्नेल उन्हें एक्सेस करने का कोई तरीका नहीं प्रदान करता है ; विशेष रूप से, यह stat()सी में कॉल से आने वाली संरचना , नवीनतम कर्नेल संस्करण के रूप में, किसी भी निर्माण तिथि फ़ील्ड में शामिल नहीं है । आप यह भी देख सकते हैं कि पहचानकर्ता st_crtimeवर्तमान में पायथन स्रोत में कहीं भी नहीं है । कम से कम यदि आप चालू हैं ext4, तो डेटा फ़ाइल सिस्टम में इनोड्स से जुड़ा हुआ है, लेकिन इसे एक्सेस करने का कोई सुविधाजनक तरीका नहीं है।

    लिनक्स पर अगली-सबसे अच्छी बात यह है कि किसी परिणाम के mtimeमाध्यम से या तो फ़ाइल का उपयोग किया जाए । यह आपको अंतिम बार फ़ाइल की सामग्री को संशोधित करने की अनुमति देगा, जो कुछ उपयोग मामलों के लिए पर्याप्त हो सकती है।os.path.getmtime().st_mtimeos.stat()

यह सब एक साथ रखकर, क्रॉस-प्लेटफ़ॉर्म कोड कुछ इस तरह दिखना चाहिए ...

import os
import platform

def creation_date(path_to_file):
    """
    Try to get the date that a file was created, falling back to when it was
    last modified if that isn't possible.
    See http://stackoverflow.com/a/39501288/1709587 for explanation.
    """
    if platform.system() == 'Windows':
        return os.path.getctime(path_to_file)
    else:
        stat = os.stat(path_to_file)
        try:
            return stat.st_birthtime
        except AttributeError:
            # We're probably on Linux. No easy way to get creation dates here,
            # so we'll settle for when its content was last modified.
            return stat.st_mtime

9
मैंने इसे एक साथ फेंकने की पूरी कोशिश की है (और इस प्रक्रिया में शोध करने में कुछ घंटे बिताए हैं), और मुझे यकीन है कि यह उन उत्तरों से कम से कम सही है जो पहले यहां थे, लेकिन यह वास्तव में एक कठिन विषय है और मैं ' डी किसी भी सुधार, स्पष्टीकरण या अन्य इनपुट की सराहना करते हैं जो लोग पेश कर सकते हैं। विशेष रूप से, मैं ext4लिनक्स के तहत ड्राइव पर इस डेटा तक पहुंचने का एक तरीका बनाना चाहता हूं, और मैं सीखना चाहूंगा कि जब लिनक्स विंडोज, या वाइका वर्सा द्वारा लिखी गई फ़ाइलों को पढ़ता है, तो यह होता है कि वे st_ctimeअलग-अलग उपयोग करते हैं।
मार्क अमेरी

25
सच कहूँ तो, फ़ाइल निर्माण समय आमतौर पर काफी बेकार है। जब आप मोड के साथ लिखने के लिए एक मौजूदा फ़ाइल खोलते हैं "w", तो वह इसे प्रतिस्थापित नहीं कर रहा है, यह केवल मौजूदा फ़ाइल को खोलता है और इसे छोटा करता है। भले ही यह फ़ाइल सामग्री पूरी तरह से असंबंधित है, जो कुछ भी इसके निर्माण पर था, आपको अभी भी बताया जाएगा कि फ़ाइल वर्तमान संस्करण से पहले अच्छी तरह से "बनाई गई" थी। इसके विपरीत, वे संपादक जो बचत पर परमाणु प्रतिस्थापन का उपयोग करते हैं (मूल फ़ाइल को नए कार्य-प्रगति टेम्प-फ़ाइल द्वारा प्रतिस्थापित किया जाता है) एक और हाल ही की निर्माण तिथि दिखाएगा, भले ही आपने केवल एक वर्ण को हटा दिया हो। संशोधन समय का उपयोग करें, निर्माण समय के लिए ग्रब न करें।
शैडो रेंजर

3
कई सालों के बाद, मैंने आखिरकार फ़ाइल निर्माण समय के लिए एक उपयोग पाया है! मैं कुछ निर्देशिकाओं में एक फ़ाइल नामकरण सम्मेलन की जांच करने के लिए कोड लिख रहा हूं, इसलिए सबसे पहले मैं उन फाइलों पर विचार करना चाहता हूं जिन्हें पहले सम्मेलन के नाम पर रखा गया था। संपूर्ण सामग्रियों (माइम) को बदलना अप्रासंगिक है: यदि यह पहले से ही था तो इसमें दादागिरी की गई है।
स्टीव जेसप

1
हाय मार्क। मैं एक सरलीकरण का प्रस्ताव करता हूं। लिनक्स पर, वापसी stat.st_ctimeअधिक प्रासंगिक है क्योंकि, कई मामलों में, अंतिम मेटाडेटा परिवर्तन का समय निर्माण समय हो सकता है (कम से कम ctimeवास्तविक निर्माण समय की तुलना में करीब है mtime)। इसलिए, आप बस अपने स्निपेट को बदल सकते हैं stat = os.stat(path_to_file); try: return stat.st_birthtime; except AttributeError: return stat.st_ctime। तुम क्या सोचते हो? चीयर्स
ऑलिब्रे

4
@olibre "कम से कम समय माइम की तुलना में वास्तविक निर्माण समय के करीब है" - नहीं यह नहीं है; यह कुछ ऐसा है जिसे मैंने कई बार कहा है लेकिन यह पूरी तरह से गलत है। जब तक आप मैन्युअल रूप से अपने inode में मूल्यों के साथ गड़बड़ कर दिया है, ctimeहमेशा के लिए या बराबर होना चाहिए बाद में की तुलना में mtime, क्योंकि एक mtimeपरिवर्तन का कारण बनता है एक ctime(क्योंकि परिवर्तन mtimeही "मेटाडेटा" माना जाता है)। Stackoverflow.com/a/39521489/1709587 देखें जहाँ मैं इसे उदाहरण देने के लिए कुछ उदाहरण कोड प्रदान करता हूँ।
मार्क अमेरी

676

आपके पास कुछ विकल्प हैं। एक के लिए, आप कार्यों os.path.getmtimeऔर os.path.getctimeकार्यों का उपयोग कर सकते हैं :

import os.path, time
print("last modified: %s" % time.ctime(os.path.getmtime(file)))
print("created: %s" % time.ctime(os.path.getctime(file)))

आपका अन्य विकल्प उपयोग करना है os.stat:

import os, time
(mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime) = os.stat(file)
print("last modified: %s" % time.ctime(mtime))

नोट : निक्सन सिस्टम पर निर्माण समय का उल्लेख नहींctime() करता है , बल्कि पिछली बार इनोड डेटा बदल गया था। (रोचक ब्लॉग पोस्ट का लिंक प्रदान करके टिप्पणियों में उस तथ्य को और अधिक स्पष्ट करने के लिए कोजीरो का धन्यवाद)


169
बस अगर किसी को प्रश्न में @ ग्लिफ़ की टिप्पणी याद आती है, तो CIME का मतलब POSIX सिस्टम पर निर्माण समय नहीं है । मुझे आश्चर्य है कि पिछले तीन वर्षों में कितने लोगों ने इस पोस्ट को स्किम किया है और बग्गी कोड लिखने के लिए आगे बढ़े हैं।
कोजिरो

16
ध्यान रखें पहला उदाहरण आपको एक स्ट्रिंग देता है, न कि डेटाइम या संख्या।
जक

1
@kojiro आपके द्वारा लिंक की गई ब्लॉग पोस्ट अधिक स्पष्ट हो सकती है कि यूनिक्स पर ctimeजब भी कोई फ़ाइल अपडेट होती mtimeहै (क्योंकि mtime"मेटाडेटा" है), और इसलिए ctimeसामान्य रूप से या उसके आगे हमेशा बराबर होता है mtimectimeइस प्रकार "बनाया" समय के रूप में व्यवहार करना बिल्कुल भी समझ में नहीं आता है। -1!
मार्क अमेरी

आपका पहला विकल्प फ़ाइल निर्माण और अंतिम संशोधन दोनों के लिए समान परिणाम देता है! Last modified: Fri Jan 31 11:08:13 2020और Created: Fri Jan 31 11:08:13 2020लिनक्स उबंटू 16.04 पर!
फरिद अलीजानी

मुझे पता है कि time.ctime(os.path.getmtime(file))2 प्रकार के स्ट्रिंग्स लौटाता है, यह निर्भर करता है कि फ़ाइल सिस्टम द्वारा या उपयोगकर्ता द्वारा संशोधित की गई है। यदि इसे सिस्टम द्वारा संशोधित किया गया है, तो स्ट्रिंग में महीने और दिन के बीच 2 स्थान होंगे। मैं नहीं जानता कि क्यों
मैट एंटोलीनी

376

इसके लिए उपयोग करने का सबसे अच्छा कार्य os.path.getmtime () है । आंतरिक रूप से, यह सिर्फ उपयोग करता है os.stat(filename).st_mtime

डेटाटाइम मॉड्यूल टाइमस्टैम्प का सबसे अच्छा हेरफेर है, इसलिए आप datetimeइस तरह की वस्तु के रूप में संशोधन की तारीख प्राप्त कर सकते हैं :

import os
import datetime
def modification_date(filename):
    t = os.path.getmtime(filename)
    return datetime.datetime.fromtimestamp(t)

उपयोग उदाहरण:

>>> d = modification_date('/var/log/syslog')
>>> print d
2009-10-06 10:50:01
>>> print repr(d)
datetime.datetime(2009, 10, 6, 10, 50, 1)

1
यह जवाब भी थोड़ा गलत है। getmtimeयूनिक्स पर उपलब्ध निकटतम चीज़ है (जहाँ सृजन की तारीखें मिलना संभव नहीं है), लेकिन निश्चित रूप से विंडोज पर उपयोग करने के लिए सबसे अच्छा कार्य नहीं है, जहां ctimeएक निर्माण समय है।
मार्क अमेरी

3
@MarkAmery - यह उत्तर स्पष्ट रूप से केवल संशोधन समय के बारे में बताया जा रहा है।
आर्टऑफवर्फ

47

os.stat https://docs.python.org/2/library/stat.html#module-stat

संपादित करें: नए कोड में आपको संभवतः os.path.getmtime () (धन्यवाद क्रिश्चियन ऑडर्ड) का उपयोग करना चाहिए,
लेकिन ध्यान दें कि यह अंश सेकंड के साथ time_t का एक अस्थायी बिंदु मान लौटाता है (यदि आपका ओएस इसे समर्थन करता है)


44
os.path.getmtime () इसके लिए बनाया गया है, और सरल है।
क्रिश्चियन Oudard

5
यहां "नए कोड में" खंड थोड़ा भ्रामक है। os.path.getmtime()पाइथन 1.5.2 ( पुराने डॉक्स देखें ) के बाद से चारों ओर रहा है, इससे पहले कि मैं इस उत्तर के मूल संस्करण को लिखने से पहले अपने अधिकांश बच्चे के दांत खो देता हूं और लगभग एक दशक पहले।
मार्क अमेरी

39

आधुनिक समय, os.path.getmtime () या os.stat () प्राप्त करने के लिए दो विधियाँ हैं, लेकिन समय विश्वसनीय क्रॉस-प्लेटफ़ॉर्म (नीचे देखें) नहीं है।

os.path.getmtime ()

getmtime ( पथ ) पथ
के अंतिम संशोधन का समय लौटाएं। वापसी मूल्य एक संख्या है जो युग के बाद से सेकंड की संख्या दे रही है (समय मॉड्यूल देखें)। यदि फ़ाइल मौजूद नहीं है या अप्राप्य है, तो os.error को उठाएँ। संस्करण 1.5.2 में नया। संस्करण 2.3 में बदला गया: यदि os.stat_float_times () सही है, तो परिणाम एक अस्थायी बिंदु संख्या है।

os.stat ()

स्टेट ( पथ )
दिए गए पथ पर एक स्टेट () सिस्टम कॉल करें। रिटर्न वैल्यू एक ऐसी वस्तु है, जिसकी विशेषताएँ स्टेट स्ट्रक्चर के सदस्यों के अनुरूप होती हैं, जैसे: st_mode (सुरक्षा बिट्स), st_ino (इनोड संख्या), st_dev (डिवाइस), st_nlink (हार्ड लिंक की संख्या), stuid (स्वामी की उपयोगकर्ता आईडी) ), st_gid (स्वामी की समूह आईडी), st_size (फ़ाइल का आकार, बाइट्स में), st_atime (सबसे हाल ही में पहुंच का समय), st_mtime (सबसे हाल की सामग्री संशोधन का समय), st_ctime (मंच पर निर्भर ), सबसे हालिया मेटाडेटा परिवर्तन का समय। यूनिक्स पर, या विंडोज पर निर्माण का समय) :

>>> import os
>>> statinfo = os.stat('somefile.txt')
>>> statinfo
(33188, 422511L, 769L, 1, 1032, 100, 926L, 1105022698,1105022732, 1105022732)
>>> statinfo.st_size
926L
>>> 

उपरोक्त उदाहरण में आप क्रमशः mime और ctime प्राप्त करने के लिए statinfo.st_mtime या statinfo.st_ctime का उपयोग करेंगे।


13

पायथन 3.4 और इसके बाद के संस्करण में, आप ऑब्जेक्ट उन्मुख पाथलिब मॉड्यूल इंटरफ़ेस का उपयोग कर सकते हैं जिसमें ओएस मॉड्यूल के बहुत से आवरण शामिल हैं। यहाँ फ़ाइल आँकड़े प्राप्त करने का एक उदाहरण है।

>>> import pathlib
>>> fname = pathlib.Path('test.py')
>>> assert fname.exists(), f'No such file: {fname}'  # check that the file exists
>>> print(fname.stat())
os.stat_result(st_mode=33206, st_ino=5066549581564298, st_dev=573948050, st_nlink=1, st_uid=0, st_gid=0, st_size=413, st_atime=1523480272, st_mtime=1539787740, st_ctime=1523480272)

क्या os.stat_resultशामिल है के बारे में अधिक जानकारी के लिए , प्रलेखन देखें । संशोधन समय के लिए आप चाहते हैं fname.stat().st_mtime:

>>> import datetime
>>> mtime = datetime.datetime.fromtimestamp(fname.stat().st_mtime)
>>> print(mtime)
datetime.datetime(2018, 10, 17, 10, 49, 0, 249980)

यदि आप विंडोज पर निर्माण समय चाहते हैं, या यूनिक्स पर सबसे हालिया मेटाडेटा परिवर्तन, तो आप उपयोग करेंगे fname.stat().st_ctime:

>>> ctime = datetime.datetime.fromtimestamp(fname.stat().st_ctime)
>>> print(ctime)
datetime.datetime(2018, 4, 11, 16, 57, 52, 151953)

इस आलेख में अधिक उपयोगी जानकारी और पथलिब मॉड्यूल के लिए उदाहरण हैं।


11

os.statst_mtimeऔर st_ctimeविशेषताओं के साथ एक नामित टपल लौटाता है । संशोधन का समय st_mtimeदोनों प्लेटफार्मों पर है; दुर्भाग्य से, विंडोज पर, ctime"निर्माण समय" का मतलब है, जबकि पोसिक्स पर इसका अर्थ है "समय बदलना"। मुझे POSIX प्लेटफ़ॉर्म पर निर्माण समय प्राप्त करने के किसी भी तरीके के बारे में पता नहीं है।


यहाँ टैग किए गए टुपल्स के बारे में अधिक जानकारी दी गई है: stackoverflow.com/questions/2970608/… वे टुपल्स की तरह काम करते हैं, लेकिन dir(..)एक पर कोशिश करते हैं। उदाdir(os.stat(os.listdir('.')[0]))
एवगेनी सर्गेव

9
import os, time, datetime

file = "somefile.txt"
print(file)

print("Modified")
print(os.stat(file)[-2])
print(os.stat(file).st_mtime)
print(os.path.getmtime(file))

print()

print("Created")
print(os.stat(file)[-1])
print(os.stat(file).st_ctime)
print(os.path.getctime(file))

print()

modified = os.path.getmtime(file)
print("Date modified: "+time.ctime(modified))
print("Date modified:",datetime.datetime.fromtimestamp(modified))
year,month,day,hour,minute,second=time.localtime(modified)[:-3]
print("Date modified: %02d/%02d/%d %02d:%02d:%02d"%(day,month,year,hour,minute,second))

print()

created = os.path.getctime(file)
print("Date created: "+time.ctime(created))
print("Date created:",datetime.datetime.fromtimestamp(created))
year,month,day,hour,minute,second=time.localtime(created)[:-3]
print("Date created: %02d/%02d/%d %02d:%02d:%02d"%(day,month,year,hour,minute,second))

प्रिंट

somefile.txt
Modified
1429613446
1429613446.0
1429613446.0

Created
1517491049
1517491049.28306
1517491049.28306

Date modified: Tue Apr 21 11:50:46 2015
Date modified: 2015-04-21 11:50:46
Date modified: 21/04/2015 11:50:46

Date created: Thu Feb  1 13:17:29 2018
Date created: 2018-02-01 13:17:29.283060
Date created: 01/02/2018 13:17:29

-1: अन्य उत्तरों के समान ही यह आपको फ़ाइल के निर्माण का समय विंडोज पर नहीं देगा (जो कि एक बार फिर से उत्तर में भी नहीं बताया गया है)।
ntninja

@ntninja क्या आप इसके बारे में निश्चित हैं? मैं केवल विंडोज का उपयोग करता हूं और यह बिल्कुल काम करता है। मैंने यह स्क्रिप्ट 2015 की शुरुआत में लिखी थी। मुझे लगता है कि यह अधिक स्पष्ट था, सीधे इस बिंदु पर, पूर्ण और यहाँ अन्य की तुलना में आत्म व्याख्यात्मक। (जो मैं अपनी पुरानी लिपियों के बजाय यहाँ देखने का फैसला करने के लिए हुआ था बस वहाँ कुछ भी नया था। नहीं ... यह तरीका है)
पोदले

ओह, मेरा कहने का मतलब "... यह आपको फ़ाइल के निर्माण का समय नहीं देगा, जब तक कि आप विंडोज पर नहीं हैं ।" माफ़ करना! तथ्य यह है कि यह उत्तर पोर्टेबल नहीं है और इस तथ्य का उल्लेख नहीं करता है। (लिनक्स पर उदाहरण आउटपुट: pastebin.com/50r5vGBE )
ntninja

@ntninja तुम जाओ तो बाकी सब बताओ?
पुड्डल

पहले से ही कुछ अन्य टिप्पणियों को यहां छोड़ दिया है और मैं जल्द ही (हाल ही में) लिनक्स पर काम करने वाला उत्तर पोस्ट करूंगा। लेकिन वास्तव में, आपके पोस्ट में केवल एक चीज गलत है, वह है विंडोज-केवल उत्तर जो इस तथ्य का उल्लेख नहीं करता है। प्रश्न में ओपी ने विशेष रूप से एक विंडोज और लिनक्स संगत समाधान के लिए कहा। जैसे कि मुझे लगता है कि यह बहुत उपयोगी होगा यदि आपने इस "विस्तार" को कहीं और शीर्ष पर जोड़ा है, ताकि लोग यह सोचकर भ्रमित न हों कि कई प्लेटफार्मों को लक्षित करते समय वे क्या देख रहे हैं।
ntninja

2
>>> import os
>>> os.stat('feedparser.py').st_mtime
1136961142.0
>>> os.stat('feedparser.py').st_ctime
1222664012.233
>>> 

-1: जैसा कि कहीं और उल्लेख किया गया है, यह आपको फ़ाइल के निर्माण का समय नहीं देगा, जब तक कि आप विंडोज पर नहीं हैं (जिसका उत्तर में उल्लेख नहीं है!)।
ntninja

0

यदि प्रतीकात्मक लिंक का पालन करना महत्वपूर्ण नहीं है, तो आप os.lstatबिलिन का भी उपयोग कर सकते हैं ।

>>> os.lstat("2048.py")
posix.stat_result(st_mode=33188, st_ino=4172202, st_dev=16777218L, st_nlink=1, st_uid=501, st_gid=20, st_size=2078, st_atime=1423378041, st_mtime=1423377552, st_ctime=1423377553)
>>> os.lstat("2048.py").st_atime
1423378041.0

यह अंतिम रीड (कम से कम यूनिक्स पर) का समय देगा, जो निश्चित रूप से वह नहीं है जो मांगा गया था।
मार्क अमेरी

0

यह crtimeलाइब्रेरी पर एक नज़र डालने के लायक हो सकता है जो फ़ाइल निर्माण समय में क्रॉस-प्लेटफ़ॉर्म एक्सेस को लागू करता है।

from crtime import get_crtimes_in_dir

for fname, date in get_crtimes_in_dir(".", raise_on_error=True, as_epoch=False):
    print(fname, date)
    # file_a.py Mon Mar 18 20:51:18 CET 2019

1
मैं इसके खिलाफ दृढ़ता से सलाह देता हूं: यह debugfsलिनक्स पर उपयोग करता है जो कि परिभाषा से अस्थिर है, हर चीज के लिए शीर्ष-स्तरीय रूट एक्सेस की आवश्यकता होती है और बहुत अधिक हर पहलू में आपकी माँ के बारे में चेतावनी दी गई चीजों में से एक है। (लेकिन हां, यह संभवत: तब काम करता है जब आप वास्तव में हताश हों और सुरक्षित बूट के बिना सिस्टम पर वास्तविक
सुपरयुजर बनें

@ntninja मैं शायद कभी भी उत्पादन में उपयोग नहीं करूंगा, लेकिन यह "होम स्क्रिप्टिंग" के लिए उपयोगी हो सकता है।
डेलगन

-2

os.statनिर्माण समय शामिल है। os.stat()उस समय के तत्व के लिए st_anything की कोई परिभाषा नहीं है ।

तो यह प्रयास करें:

os.stat('feedparser.py')[8]

तुलना करें कि ls -lah में फ़ाइल पर अपनी दिनांक बनाएं

उन्हें समान होना चाहिए।


6
गलत! os.stat ('feedparser.py') [8] का तात्पर्य st_mtime से है, सृजन का समय नहीं। कृपया दस्तावेज़ीकरण देखें: docs.python.org/library/os.html#os.stat
मिलरदेव

4
कृपया बदसूरत संख्याओं के बजाय .st_ctime का उपयोग करें [8]।
गुत्थी

-3

मैं सिस्टम के स्टेट कमांड को चलाने और आउटपुट को पार्स करके पॉज़िक्स पर निर्माण समय प्राप्त करने में सक्षम था।

commands.getoutput('stat FILENAME').split('\"')[7]

टर्मिनल (OS X) से अजगर के बाहर चल रही प्रतिमा:

805306374 3382786932 -rwx------ 1 km staff 0 1098083 "Aug 29 12:02:05 2013" "Aug 29 12:02:05 2013" "Aug 29 12:02:20 2013" "Aug 27 12:35:28 2013" 61440 2150 0 testfile.txt

... जहाँ चौथा डेटाटाइम फ़ाइल निर्माण है (अन्य टिप्पणियों के अनुसार समय बदलने के समय के बजाय)।


13
-1: शेल कमांड से मनुष्यों के लिए बने आउटपुट को पार्स करना एक बहुत बुरा विचार है। और यह कमांड क्रॉस-संगत भी नहीं है।
MestreLion
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.