如何在Python中从外部驱动器获取文件元数据?

2024-09-30 01:24:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个Python脚本,从一个文件目录收集文件元数据(文件名、创建日期、创建时间、上次修改数据、上次修改时间)。但是,当目录是位于外部硬盘驱动器中的路径时,脚本无法工作。我不明白为什么。在

代码如下:

import os
from os.path import basename
import datetime
import time
def getSize(filename):
    st = os.stat(filename)
    print st
    return st.st_size

#get last modified date
def getMTime(filename):
    fileModTime = os.path.getmtime(filename)
    return fileModTime

#get creation date
def getCTime(filename):
    fileModTime = os.path.getctime(filename)
    return fileModTime

#get data from directory

MyDirectory = "H:\0_tempfiles\150115_Portfolio\Work\Work\BarBackUp"
MyExtension = ".jpg"

#write to file
WorkingDirectory = "C:\\Users\Admin\Downloads\demo\\"
MyTxtFile = WorkingDirectory + "fileData6.txt"

delim = ";"

with open(MyTxtFile, 'wb') as f:
  f.write(delim.join(["FILENAME", "FILESIZE", "mDATE","mTIME",
                      "cDATE","cTIME"]) + "\n")

for root, dirs, files in os.walk(MyDirectory):
    for file in files:
        if file.endswith(MyExtension):
            #get File Name
            a = (os.path.join(root, file))
            #print a
            filename = a
            MyFileName = basename(a)

            #get File Size
            MyFileSize = getSize(filename) / 1000
            print MyFileName + " >>> file size: " + str(MyFileSize) + "Kb"

            #get modification time V2
            modTimeV2 = getMTime(filename)
            modTimeV2 = time.strftime("%Y/%d/%m;%I:%M:%S   %p", \
                                      time.localtime(modTimeV2))
            print "time modified: " + str(modTimeV2)

            #get creation time 
            creTime = getCTime(filename)
            creTime = time.strftime("%Y/%d/%m;%I:%M:%S %p", \
                                    time.localtime(creTime))
            print "time created: " + str(creTime) 

            #--------
            #write data to file
            entry = delim.join([str(MyFileName), str(MyFileSize), \
                                str(modTimeV2), str(creTime)]) + "\n"
            f.write(entry)

   print "<<<<<<everything went fine>>>>>>"

Tags: pathimportgettimeosdeffilenamefile

热门问题