2014-09-13 92 views
-1

我是python新手,必须使用目录。 有人可以帮我吗? 我必须知道新建文件夹的路径。我的代码生成一个新的临时文件夹,其中复制了一些文件。我必须知道这个文件夹的路径,但文件夹名称是随机的,所以我想获取最新创建的文件夹的文件夹名称。 我该怎么办?在目录中创建的最新文件夹的Python名称

+1

如何用随机名称创建此文件夹?有几种方法可以做到这一点,所以如果你不向我们展示你的代码,就很难帮助你... – 2014-09-13 10:01:32

+0

我有一个创建它的应用程序。我必须测试在新创建的tempxxxxx文件夹中创建的文件insise C:\ TempDir。所以我想如果我可以得到临时文件夹的名称找到最新创建的文件夹在C:\ TempDir – user1726783 2014-09-13 10:05:40

+0

我想我可以参考这个......但不知道到底如何? newest = max(os.listdir('。'),key = os.path.getctime) – user1726783 2014-09-13 10:07:18

回答

2

你可以做这样的事情:

import os 

directory = '.' # current dir 
folders = os.walk(directory).next()[1] 
creation_times = [(folder, os.path.getctime(folder)) for folder in folders] 
creation_times.sort(key=lambda x: x[1]) # sort by creation time 

那么你可以选择此列表的最后一个元素:

most_recent = creation_times[-1][0] 
+0

我没有next()来使用。错误消息说:AttributeError:'发电机'对象没有属性'下一个'当我尝试使用“__next__”前缀和后缀由2个下划线它给了不同的错误信息:文件“”,第1行,在 folders = os。步骤(目录).__下一步__()[1] StopIteration我试图通过python IDLE运行它,并且verison是3.4.1 – user1726783 2014-09-14 02:32:44

+0

嘿,但是当我在2.7.6上尝试它时,它的工作原理! – user1726783 2014-09-14 03:26:33

+1

@ user1726783,是的,在Python 3中,你可以使用'next(os.walk(directory))[1]'。如果问题解决了,请将问题标记为已回答。 – elyase 2014-09-14 08:18:17

0

它是一种不好的做法来获取,因为一些其他的应用程序创建的最新文件夹可能会在获取最新的文件夹之前创建一个文件夹,但是如果您真的想尝试一下elyase已经证明的代码,那就很好。

相关问题