2017-11-28 1 views
0

約1年前、大学のサーバーに保存したPythonのノートブックを開こうとしたときに、「ノートブックがJSONではないようです」というエラーが表示されていました。最初は私はすべての苦労が永遠に消え去ったことにショックを受けましたが、emacsでファイルを調べると、人生の終わりに^ @記号の長いリストが含まれていたことを除いて、 JSONインタプリタ(以下の例)。単にこれら^ @記号を削除なぜjupyterノートブックはipynbファイルの最後に^ @記号の長いリストを追加しますか?

enter image description here

は、ファイルを復元しました。それ以来、私はこのJSONエラー(かなり頻繁に)を得るたびに、私はemacsを開いてシンボルを削除するだけですが、迷惑になります。

なぜこのようなことが起こったのか、それを防ぐことができますか?私の知る限り、これは私の個人用ラップトップ(MacBook Pro OS X 10.12.6)がsmb経由で接続されているサーバーからipynbファイルを操作する場合にのみ発生します。 ipynbファイルがローカルに格納されているときは決して起こりません。私はすべてが自動的にバックアップされ、ときどき私は別のコンピュータを使うので、私はいつも自分のファイルにアクセスできるので、サーバーからの作業が好きです。

答えて

1

ファイルが壊れています。 ^@は、ASCIIのNULバイトを意味します。単に起こったのは、ファイルがより大きなサイズに拡張されていることです。メタデータはディスクにフラッシュされましたが、コンピュータが(誤って)シャットダウンしたり、オペレーティングシステムがクラッシュしたり、USBドライブが取り外されたりしたときに、実際の内容はキャッシュに残りました。

I.e.あなたの場合はおそらくでしたはこのファイルの最新の編集を失います。

+0

私はファイルが壊れていることを知っていて、それを修正する方法を知っています(すべてを削除してください^ @)。クラッシュやUSBドライブが取り外されていなかったため、これが発生したときにデータが失われることはありません。私は単に私のすべての仕事を保存し、ジュピターノートを閉じて、サーバー接続を閉じます。サーバーに再接続してファイルを開くと、時には^ @記号が付き、時には記号が表示されないことがあります。だから私の質問は、どうやってこれが起こるのを防ぐのですか? – Bow

+0

接続を突然閉じます。おそらく、接続を閉じる前にファイルシステムのキャッシュをフラッシュしてください! –

+0

洞察に感謝します! – Bow

関連する問題