1

我希望它递归调用手动输入的文件中列出的下一个文件。它是文件中列出的第一个单词。

当前的错误消息是:

OSError: [Errno 22] Invalid argument: 'file1.txt\n'.

这是我当前的代码:

import os
def crawl(fname):
infile = open(fname, 'r')
if os.stat(fname)[6]==0:
    return "Visiting {}".format(fname)
    infile.close()
else:
    print ("Visiting {}".format(fname))
    lines = infile.read().splitlines()
    nextfile = lines[0].strip()
    for line in lines:
        crawl(nextfile)
4

2 回答 2

1

我很确定问题是您在从第一个文件中读取的文件名末尾有一个换行符。strip您可以通过使用删除换行符的方法轻松修复它:

nextfile = lines[0].strip()
于 2012-10-22T00:17:49.650 回答
1

尝试:

import os
def crawl(fname):
    with open(fname, "r") as infile:
        print("Visiting {}".format(fname))
        if os.stat(fname).st_size:
            lines = infile.read().splitlines()
            for line in lines:
                crawl(line)
于 2012-10-22T00:18:06.843 回答