2017-06-22 9 views
0

書かれていてDropboxのファイルを経由してHDF5は:の同期、私がこのようになりますPythonスクリプトを持って

#!/usr/bin/env python3 

import tables as pt 
import numpy as np 
import time 


class TestTable(pt.IsDescription): 
    timestamp = pt.Float64Col() 
    voltage = pt.Float32Col() 

h5file = pt.open_file('does_it_update_dropbox.h5', mode='a') 
if not h5file.__contains__('/test'): 
    h5file.create_table('/', 'test', TestTable) 

row = h5file.root.test.row 

try: 
    while True: 
    time.sleep(10) 
    for _ in range(1000): 
     row['timestamp'] = time.time() 
     row['voltage'] = np.random.random(1)[0] 
     row.append() 
    h5file.root.test.flush() 
    print('1000 records added') 
except: 
    pass 
h5file.close() 

10秒ごとに、それはHDF5ファイルにデータを書き込みます。一晩中センサーからデータを収集しているラボのコンピューターがあり、そのデータを5マイル離れた自宅から分析したいとします。これがDropboxで監視されているフォルダにある場合、Dropboxはスクリプトが完了すると同期します(たとえば、キーボード割り込みを与えた場合)。私は、touch does_it_update_dropbox.h5をUnixマシン上で実行するとDropboxを同期させることができることを発見しました。しかし、私の研究室の私のマシンはWindowsです。

Stack Overflow、DropboxをWindowsコンピュータの内部で書いているので、HDF5ファイルを同期させるにはどうすればよいですか?

+1

あなたが必要とするすべては、Windows用の「タッチ」であれば、このhttps://stackoverflow.com/questions/30011267/windows-equivalent-of-touch-ie-the-node-js-を見てみましょうindex-htmlを作成するか、open( "does_it_update_dropbox.h5"、 "ab")のような小さなPythonスクリプトを書いてください。write( "") ' – Pablo

答えて

0

Pabloの回答が正しいと私をより洗練されたソリューションに導いた。

import os 
filename = "does_it_update_dropbox.h5" 
h5file.flush() 
os.stat(filename) # this does the magic of updating the filesize on the disk 
関連する問題