我有一個python
程序(比如reader.py
),使用文件setting.py
從閱讀:如何不能寫入文件,而閱讀,反之亦然
while(True):
...
execfile(settings.py)
...
但有其他python
程序(比如writer.py
),其使用此文件寫入到:
...
try:
settings = open('settings.py', 'w')
settings.truncate()
settings.write('some text')
except IOError:
print('Cannot write to file')
finally:
settings.close()
...
注1:reader.py
和writer.py
不'知道'對每個行吟詩人河
注2:reader.py
讀取settings.py
循環,雖然writer.py
寫道,當用戶想要的文件到(在他/她點擊了「」寫'不一定正確的,它只是意味着沒有任何規則時向右) 。
問題:什麼是,以避免任何矛盾,以合作兩種方案的最佳方式?我知道這可能取決於平臺。我正在使用Linux。發行版本是:Ubuntu,Scientific Linux。
EDIT1:如果我選擇使用FiFo
我會遇到以下問題:一旦作家寫settings
文件時,它可能永遠不會再寫信,但讀者應該在這種情況下,必須settings
訪問反正。換句話說,讀者應該有能力從文件中讀取,而不是在這種情況下等待作者。否則讀者必須等待作家。 如果寫入者沒有寫入(直到寫入),則普通使用FiFo
不允許讀者從文件讀取。如何處理這個問題?
如果您需要並行運行這兩個腳本,同時確保讀/寫不同時發生,您可以嘗試使用[multiprocessing](https://docs.python.org/3/library/multiprocessing)。 html),創建分離的線程並加入它們。 –
您可能想要寫入'settings_new.py',然後一旦寫入完成,將'settings_new.py'移至'settings.py'(覆蓋它)。我認爲這應該創建一個原子「更新」文件 - 許多應用程序,如文本編輯採取這種方法。 – Attie