2017-01-02 8 views
-1

python-docxを使って開いた単語の文書に書きたいと思っています。しかし、これは、私が過去に同様のケースのために疑わしいと思っていた種類のIOError: [Errno 13] Permission denied: 'test.docx'を投げますが、私は、文書を閉じたり開いたりせずに、長い時間がかかり、比較的速くて短いオペレーション(単語docの最後に参考文献を追加すること)。開いているWord文書に書き込む方法

オープニングと読み込みは完全にうまく簡単です(アクセスが許可されます)。しかし、実際にファイルを保存することはできません。 。ファイルが単語で開かれていない場合、エラーは消えますが、これは受け入れられません(継続して閉じてから再開することはできません)。

多分、python-docxを使って文書を単語で保存する別の方法がありますか?私が思うに、破壊や再作成の代わりに追加を伴うものは、 "with"や "read"を使って.txtファイルにアクセスするほうがはるかに良いでしょう。

何らかの形でテキストを追加する方がいいでしょう。ワード文書には、同様に、ユーザにとってより良い、より速く経験で、その結果、開いている間。

答えて

2

このエラーは、(Windowsは、それはのように聞こえる)オペレーティングシステムから来ている、ともそれが必要。

あなたが求めている操作は、ドキュメントが開いているWordアプリケーションのコントロールによってのみ意味をなさないでしょう。これは、Visual Basic、つまりWordマクロを使用して実行できます。

この場合、python-docxという別のプログラムを使用すると意味をなさないのは、変更した内容がWordで表示されないためです。自動的にファイルへの変更を検出せずにリロードします。さらに悪いことに、ユーザーがドキュメントを保存すると、変更内容が失われます。 Word文書のメモリには、変更したバージョンが上書きされます。

これは、Windowsがファイルを開くことを拒否して、オペレーティングシステムにファイルロックが設定されている「変更が失われないように」するのを防ぐためです。

関連する問題