0

我有这段代码可以搜索给定目录中的所有文件,但我想更改它以便它可以从用户输入中搜索文件?然后再次询问是否找不到文件?我的以下代码是:

import os
import sys
from stat import *


def depthsearch(directory):
    for files in os.listdir(directory):
        fileItem = os.path.join(directory, files)
        fileItemStatInfo = os.stat(fileItem)
        if S_ISDIR(fileItemStatInfo.st_mode):
            depthsearch(fileItem)
        elif S_ISREG(fileItemStatInfo.st_mode):
            print("Found File:", fileItem)

depthsearch("C:")
4

3 回答 3

2

关于什么

depthsearch(raw_input())  # or 'input()' for Python 3

要检查给定字符串是否代表有效目录,您可以使用os.path.isdir(). 因此,您可以将调用包装depthsearch()在一个 while 循环中,该循环不断询问用户输入,直到他们提供有效的目录。

于 2013-07-09T13:33:21.723 回答
1

您可以使用以下方法获取输入:

Python 2.X 的raw_input功能:

s = raw_input()

Python 3.X 的input功能:

s = input()
于 2013-07-09T13:37:16.647 回答
0
def depthsearch(directory, fileName):
    for files in os.listdir(directory):
        fileItem = os.path.join(directory, files)
        fileItemStatInfo = os.stat(fileItem)
        if S_ISDIR(fileItemStatInfo.st_mode):
            depthsearch(fileItem,filename)
        elif S_ISREG(fileItemStatInfo.st_mode or (files==filename):
            print("Found File:", fileItem)

depthsearch("C:", "python.exe")

这允许您搜索目录中的文件。它只是测试名称是否相同。

于 2013-07-09T13:36:55.460 回答