1

我正在用 Python 编写一个解析代码,它需要 html 页面并提取某些信息。我的 html 存储在名为 filelist.txt 的文档和名为 rawdata 的目录中。我当前获取文件的方法如下所示:

def getfiles(foldername):

    infile = "filelist.txt"
    infileh = open(infile, "r")
    onlyfiles = []
    for line in infileh:
            onlyfiles.append(line.strip())

    #print onlyfiles                                                                            
    #onlyfiles = [ f for f in listdir(foldername) if isfile(join(foldername,f)) ]               
    return onlyfiles

和:

filepath ="/mnt/nfs6/wikipedia.proj/odesk/rawdata/" + filename
    #print filepath                                                                             
    filehandle = open(filepath, "r")
    soup = BeautifulSoup(filehandle)

但是现在我需要改变我的方法:这些文件并不都位于一个大文件文本中——而是它们位于许多单独的目录中——我希望我的代码循环遍历每个目录并获取文件并在它们上运行代码. 我对如何循环并不感到困惑,而是如何编写“getfiles”方法进入非特定目录。任何人都可以建议一种方法或指导我了解我可以了解更多信息的信息吗?(我正在使用 python、Beautiful Soup 和 os)

4

2 回答 2

0

您可能会发现 os.walk 对于从给定起点遍历目录结构很有用。然后,您可以根据您需要的任何条件测试找到的每个文件,然后再将其附加到您的列表中: http: //docs.python.org/2/library/os.html

于 2013-06-28T17:03:11.460 回答
0

os.path.walkfindpython 的。os.path类似的其他方法listdir将很有用。

于 2013-06-28T17:03:44.767 回答