我需要找到系統文件夾中的文件數量。os.walk在python不運行,cmd行參數作爲路徑傳遞
這是我使用的:
file_count = sum((len(f) for _, _, f in os.walk('path')))
這工作得很好,當我們指定路徑用引號引起的字符串,但是當我輸入保存路徑,類型(FILE_COUNT)變量名是發電機對象,因此不能用作整數。
如何解決這個問題,爲什麼會發生這種情況?
好吧,這裏是我在做什麼:
python mypyProg.py arg1 arg2 arg3
在myProg.py
:
在終端命令行arg1 = sys.argv[1]
file_count = sum((len(f) for _, _, f in os.walk(arg1)))
ARG1作爲一個字符串傳遞
我檢查了repr(arg1)和type(arg1):
repr(arg1) '/home/kartik/Downloads/yahoo_dataset/tryfolder'
type(arg1) <type 'str'>
type(file_count) <type 'generator'>
錯誤消息:
NDCG = scipy.zeros((file_count,1),float)
TypeError: an integer is required
我不知道,它正在運行時,我只用一些虛擬變量進入它的空閒蟒蛇IDE罰款。
請顯示不起作用的代碼,包括'repr(path_variable)'的打印以及設置它的代碼。 – 2010-05-21 08:38:54
'sum'應該總是返回一個整數,不是嗎? – 2010-05-21 08:40:17
你確定你沒有在程序的某個地方覆蓋「sum」這個名字嗎?這是一個常見的錯誤。 – rbp 2010-08-10 19:50:39