我正在测试搜索文件的不同方法。大卫·比兹利(David Beazley)的这段来自Python Essential Ref的代码可在Python交互中工作。我对其进行了修改,使其从CL运行-看看我是否可以并且不起作用
我已经在测试搜索中以交互模式运行了“ findall”功能,并且运行良好。当我尝试从CLI像python -m find_files'path'运行它时,它不起作用。我已经使用print()尝试跟踪解释器到达的位置。它正确接收sys.argv [1],并进入findall()函数。但是,它什么都不会产生?
import os
import os.path
import glob
import fnmatch
import sys
def findall(pattern, topdir='.'):
for dir, dirname, files in os.walk(topdir):
for name in files:
if fnmatch.fnmatch(name, pattern):
yield os.path.join(dir, name)
if __name__ == "__main__":
if len(sys.argv) > 1:
tin = []
for file_found in findall(sys.argv[1]):
tin.append(file_found)
else:
print('Nothing found')
else:
print('Insufficient arguments')
print(tin)
我希望它可以打印出file_found。最初,我是一个接一个地打印找到的每个路径。然后,我尝试追加到列表,然后打印列表。无论哪种方式,它都不适合我。