从CLI运行模块

时间:2019-06-18 15:45:24

标签: python command-line-interface

我正在测试搜索文件的不同方法。大卫·比兹利(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。最初,我是一个接一个地打印找到的每个路径。然后,我尝试追加到列表,然后打印列表。无论哪种方式,它都不适合我。

0 个答案:

没有答案