写一个文件夹中项目的创建时间列表

Writing a list of creation time of items in a folder

我正在尝试编写一个文本文件,其中包含目录中每个文件的创建日期。我查看了 this 问题,但我仍然需要帮助,除了好奇为什么下面的代码不起作用。

我想我很接近。它适用于 文件夹 的创建日期,但我想知道 文件 的创建时间。

import os, os.path, time, datetime    
mydir = '/home/user/ebay/'
mydir2 = '/home/user/'
def writefiles():
    with open(mydir2 + '/items.txt', "wb") as a:
        for path, subdirs, files in os.walk(mydir):
            for file in files:
                a.write(file+' , '+(time.ctime(os.path.getctime(file))) + os.linesep)
writefiles()

我收到此错误消息:

OSError: [Errno 2] No such file or directory: 'PkV20ZrzMs'

这很奇怪,因为有一个名为 'PkV20ZrzMs' 的文件。我尝试添加目录位置,但没有任何区别。

我认为我接近的原因是,当我将 (os.path.getctime(file) 更改为 (os.path.getctime(path) 时,我得到了文件夹的创建日期,如下所示:

PkV20ZrzMs , Fri Mar 20 13:43:31 2015
qZzo0ZUAtm , Fri Mar 20 13:43:31 2015
Tm5f8Lhgcd , Fri Mar 20 13:43:31 2015
vgMCBGdJu0 , Fri Mar 20 13:43:31 2015
Ja7Bwa5uEi , Fri Mar 20 13:43:31 2015

以下对我有用,也许你的路径有问题?请注意,您的 mydir2 中有一个尾部斜线,当您连接 '/items.txt'.

时,它可能会弄乱您正在写入的路径
import os, os.path, time, datetime    

mydir = '/home/xnx/temp'
mydir2 = '/tmp'

def writefiles():
    with open(mydir2 + '/items.txt', "wb") as a:
        for path, subdirs, files in os.walk(mydir):
            for file in files:
                a.write(file+' , '+(time.ctime(os.path.getctime(
                           os.path.join(path, file)))) + os.linesep)
writefiles()