2012-06-09 16 views
9

उदाहरण के लिए,निर्देशिका में फ़ाइल विशेषताओं को कैसे पढ़ा जाए?

निर्देशिका में
import os 
print os.listdir() 

सूची फ़ाइलें।

निर्देशिका में सभी फ़ाइलों के लिए फ़ाइल संशोधन समय कैसे प्राप्त करें?

+0

संभव डुप्लिकेट [? कैसे फ़ाइल निर्माण और संशोधन दिनांक/पायथन में बार प्राप्त करने के लिए] (http://stackoverflow.com: यदि आप एक तर्क के साथ listdir का उपयोग कर रहे हैं, तो आप भी उपयोग करने के लिए os.path.join की आवश्यकता होगी/प्रश्न/237,079/कैसे करने वाली मिलता-फ़ाइल-रचना-संशोधन की तारीख बार-इन-अजगर) –

उत्तर

28

os.stat का उपयोग करें, संशोधन समय जैसे फ़ाइल गुण प्राप्त करने के लिए कॉल करें।

import os 
for filename in os.listdir(): 
    info = os.stat(filename) 
    print info.st_mtime 

st_mtime अजगर 2.5 और ऊपर पर एक नाव मूल्य है, अवधि के बाद सेकंड का प्रतिनिधित्व; प्रदर्शन उद्देश्यों या इसी तरह के लिए इन्हें समझने के लिए time या datetime मॉड्यूल का उपयोग करें।

ध्यान दें कि मूल्य का सटीक ओएस प्रयोग कर रहे हैं पर निर्भर करता है है:

सटीक अर्थ और st_atime, st_mtime, और st_ctime विशेषताओं का संकल्प ऑपरेटिंग सिस्टम और फाइल सिस्टम पर निर्भर करते हैं। उदाहरण के लिए, एफएटी या एफएटी 32 फाइल सिस्टम का उपयोग कर विंडोज सिस्टम पर, st_mtime में 2-सेकंड रिज़ॉल्यूशन है, और st_atime में केवल 1-दिन का रिज़ॉल्यूशन है। विवरण के लिए अपने ऑपरेटिंग सिस्टम दस्तावेज देखें।

यदि आप जो भी कर रहे हैं उसे संशोधन समय मिलता है, तो os.path.getmtime विधि एक आसान शॉर्टकट है; यह हुड के नीचे os.stat विधि का उपयोग करता है।

नोट करें कि os.stat कॉल अपेक्षाकृत महंगी (फ़ाइल सिस्टम पहुंच) है, इसलिए यदि आप इसे बहुत सारी फाइलों पर करते हैं, और आपको प्रति फ़ाइल एक से अधिक डेटापॉइंट की आवश्यकता है, तो आप os.stat का उपयोग करके बेहतर हैं और पुनः उपयोग करें os.path सुविधा विधियों का उपयोग करने के बजाय जानकारी लौटा दी गई है जहां os.stat प्रति फ़ाइल एकाधिक बार कहा जाएगा।

3

यदि आप केवल संशोधित समय चाहते हैं, तो os.path.getmtime(filename) यह आपके लिए प्राप्त होगा।

import os, os.path 

for filename in os.listdir(SOME_DIR): 
    print os.path.getmtime(os.path.join(SOME_DIR, filename)) 
की
संबंधित मुद्दे