我需要找到系统文件夹中的文件数量。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