2014-09-13 93 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已經證明的代碼,那就很好。

相關問題