2
for subdir, dirs, files in os.walk(crawlFolder):
    for file in files:
         print os.getcwd()
         f=open(file,'r')
         lines=f.readlines()
         writeFile.write(lines)
         f.close()
writeFile.close()   

次のようなエラーが発生します:-

IOError:[Errno2]そのようなファイルまたはディレクトリはありません

上記の私の部分的なPythonコードを参照して:-

print os.getcwd()-> C:\ search engine \ taxonomy

ただし、ファイルはディレクトリ「C:\ searchengine \ taxonomy\testFolder」にあります。

エラーは現在のディレクトリで機能するためであり、なんらかの方法でディレクトリtestFolderにファイルを追加する必要があることがわかっています。誰かが私のコードを修正して、これを手伝ってくれませんか?ありがとうございました。

4

1 に答える 1

3

subdir変数は、を含むディレクトリへのパスを提供するためcrawlFolder、ベアの代わりににfile渡す必要があります。そのようです:os.path.join(crawlFolder, subdir, file)openfile

for subdir, dirs, files in os.walk(crawlFolder):
    for file in files:
         print os.getcwd()
         f=open(os.path.join(crawlFolder, subdir, file),'r')
         lines=f.readlines()
         writeFile.write(lines)
         f.close()
writeFile.close()

ちなみに、これはファイルを別のファイルにコピーするためのより効率的な方法です。

for subdir, dirs, files in os.walk(crawlFolder):
    for file in files:
         print os.getcwd()
         f=open(os.path.join(crawlFolder, subdir, file),'r')
         writeFile.writelines(f)
         f.close()
writeFile.close()

[編集:ゴルフをしたいという誘惑に抵抗することはできません:

for subdir, dirs, files in os.walk(crawlFolder):
    for file in files:
         writeFile.writelines(open(os.path.join(crawlFolder, subdir, file)))
writeFile.close()

]

于 2010-08-02T22:07:54.497 に答える