我正在尝试在目录中找到最近创建的文件的名称:
try:
#print "creating path"
os.makedirs(self.path)
self.dictName = "0"
except OSError as exception:
if exception.errno != errno.EEXIST:
raise
listOfFiles = os.listdir(self.path)
listOfFiles = filter(lambda x: not os.path.isdir(x), listOfFiles)
print "creating newestDict"
newestDict = max(listOfFiles, key=lambda x: os.stat(x).st_mtime) ------<
print "setting self.name"
箭头指向代码导致程序崩溃的位置。打印listOfFiles返回非空列表。这是使用第三方python程序,它有自己的解释器。我有什么想法我做错了吗?谢谢!
答案 0 :(得分:0)
您可以使用os.path.isfile()
函数和理解列表来阐明列出文件的过程,但这取决于您。如果您查看注释中的相关链接,您将看到os.path.getctime()
function,它允许您获取Windows系统中文件的创建时间以及Unix上次修改的时间类似系统(如stat()
系统调用st_mtime
属性):
from os import listdir
from os.path import isfile, join, getctime
listOfFiles = [f for f in listdir(self.path) if isfile(join(self.path,f))]
newestDict = max(listOfFiles, key=lambda x: os.path.getctime(x))
但到目前为止,您的代码看起来是正确的。如果您提供解释器抛出的错误或完整的代码,我们可能会更有帮助。