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 に答える