2016-05-29 1 views
2

私はPython 2.7で楽しいゲームを作っており、それに合わせて地図を作ろうとしています。私はファイルI/Oを使用して地図を読み書きしていますが、notepad ++にはサイレントアップデートが設定されていますが、プログラムが完全に実行され、更新されたファイルを表示する必要があります。書かれている間にファイルを見る - Python

私は私がテストしていこのコードがあります:デフォルトのPythonでは

from time import sleep 

map = open('C:\Users\Ryan\Desktop\Codes\Python RPG\Maps\map.txt', 'r+') 
map.truncate() 
print "file deleted" 

sleep(1) 

worldMap = open('C:\Users\Ryan\Desktop\Codes\Python RPG\Maps\worldMap.txt', 'r') 
for line in worldMap: 
    map.write(line) 
print "file updated" 

worldMap.close() 
map.close() 

すべてのヘルプは大幅にappricatedさ:)

+0

pythonは閉じた後にファイルに書き込みます。 – Mixone

+0

.close()メソッド – Mixone

+0

実行時にバッファに格納され、.close()が呼び出されるとバッファがファイルシステムに送信されます。私は正しく覚えていれば、コンピュータ上のバスシステムの実装のために動作します。 – Mixone

答えて

4

は、バッファI/Oを使用しています。これは、書き込まれたデータが実際にファイルに書き込まれる前にメモリに格納されていることを意味します。ファイルのflushメソッドを呼び出すと、データがファイルに書き込まれます。

+0

更新を見るためにファイルに焦点を当てる必要はありますか?現在は動作していないため。私は変更を見たいときはいつでもmap.flush()とos.fsync(map.fileno())を追加しました – Ryan

+0

残念ながら、私はNotepad ++がどのように動作し、どのようにアップデートを取得するのか正確にはわかりません。しかし、迅速なインターネット検索を行うと、更新プログラムを見るためにタブをフォーカスする必要があることが示唆されます。あなたがPython側からできることはあまりありません。 –

+2

11日前にリリースされた最新バージョンでは、新しい「監視」機能が追加されました。https://notepad-plus-plus.org/news/notepad-6.9.2-released.html –