0

PythonでIOErrorが発生しましたが、把握できません。私は、さまざまな科学記事を取得してディレクトリ構造に編成する比較的単純なスクリプトを持っています。

各出力ファイルを書き込むための呼び出しはここにあります(for-eachループ内):

        (58)    outfile = open(curr_dir + "/" + article + ".txt",'w')
        (59)    outfile.write("title: " + title + '\n')
        (60)    outfile.write("abstract: " + abstract + '\n')
        (61)    outfile.close()

1000を超える記事の場合、出力ファイルは問題なく開かれ、書き込まれます。ただし、2つでは、上記の最初の行を指す次のIOErrorで失敗します。

    Traceback (most recent call last):
    File "script.py", line 58, in <module>
    outfile = open(curr_dir + "/" + article + ".txt",'w')
    IOError: [Errno 2] No such file or directory: '/path/to/file/text.html.txt'

2つのファイルは次のとおりです。

    /path/2-minute-not-invasive-screening-for-cardio-vascular-diseases-relative-limitation-of-c-reactive-protein-compared-with-more-sensitive-l-homocystine-as-cardio-vascular-risk-factors-safe-and-effective-treatment-using-the-selective-drug-uptake-enhancementme.html.txt

    /path/expression-of-chemokine-receptors-i-immunohistochemical-analyses-with-new-monoclonal-antibodies-from-the-8th-iifferentiation-antigens.html.txt

私の知る限り、他の1000以上のドキュメントはすべてほぼ同じように見えます。たとえば、他のドキュメントは番号で始まり、印刷時に問題なく開かれました。また、これらの記事は、他の記事がすでに印刷されているのと同じディレクトリに書き込もうとしています。最初のケースでは長さに関して何か疑わしいと思いますが、2番目のケースでは問題にはなりません。

足りないものはありますか?助けてくれてありがとう!

4

1 に答える 1

0

振り返ってみると、コメントに残すのではなく、答えとして自分の解決策を投稿するべきでした。

この問題は、ファイル名だけでなく、絶対ファイルパスの長さに関係していました。これらを325文字未満にトリミングすることでうまくいきました。何かのようなもの:

article = article[:325-len(current_dir)]
out.write(os.path.join(current_dir, article + '.txt'))
于 2015-07-17T19:07:02.870 に答える