2013-07-18 13 views
2

我正在使用Python 2.6。我使用dir_util.copy_tree函數來複制文件,並且我想查看哪些文件在命令行上被複制。但是,即使指定verbose = 1,它也不會將它們打印出來!這是一個已知的錯誤,還是我做錯了什麼?dir_util.copy_tree不會打印它複製的文件

這裏是我的代碼:

distutils.dir_util.copy_tree(source, dest, verbose=1) 
+0

根據文檔的copy_tree()函數的返回值的列表文件被複制。 – 2013-07-18 01:07:11

+0

@Mike我也看了看返回值,它是None,即使我正在將文件複製過來(我可以看到它們出現) – Darkhydro

+0

不知道爲什麼。它在Python 2.6中適用於我。如果你好奇,讓我知道,我可以發佈我作爲答案的步驟。 – 2013-07-19 03:01:21

回答

4

copy_tree命令使用distutils.log寫信給你的屏幕。在這種情況下,您需要INFO級別。

所以這應該做的伎倆:

from distutils import log 
log.set_verbosity(log.INFO) 
log.set_threshold(log.INFO) 

注意其寫入sys.stderrWARNERRORFATALsys.stdoutDEBUGINFO


如果新版本的實現,你必須設置日誌模塊日誌記錄配置爲它工作:

import logging 
logging.basicConfig(level=logging.INFO) 
+0

我會試試看,謝謝 – Darkhydro

+0

我把你的代碼放到我的模塊中,它仍然不會打印任何東西。我應該以某種方式附加記錄器?如果我登錄自己,我可以打印日誌語句... – Darkhydro

+0

對於我獨立的一段代碼,它可以直接使用,但在進一步檢查'copy_tree'模塊後,它似乎沒有使用默認日誌記錄模塊。所以...我會修改我的答案:) – Wolph