2013-09-25 48 views
-1

基本上,我正在尋找一種方法來告訴我的程序在打開文件之前保存文件。說的情況是,我有一個文本文件,不斷手動寫入,但我的程序也不斷閱讀它。我如何告訴程序在每次打開文件之前保存文件?Python:加載之前保存文件(Windows 7)

我不是100%肯定,我做多大意義,如果任何澄清要求我很樂意提供。

編輯:我正在使用excel文件,基本上我會將用戶數據永久保存到使用其ID登錄會議的用戶的Excel中。

下面是我while循環,我不斷打開工作簿我(Excel文件),然後更新它,如果它改變。之後我寫信給一個輸出文件,在那裏我跟蹤我的用戶登錄會議。

try: 
    while True: 
      book2= open_workbook('IDS.xlsx') 
      sheet2=book2.sheet_by_index(0) 
      IDs2=UpdatePoints(value,IDs2) 
      writeBook.save("Counted.xls") 
      time.sleep(0.5) 
except KeyboardInterrupt: 
    print 'interrupted!' 

我想在打開它之前就能保存「book2」,如果它有任何意義。

+0

你需要澄清你所要求的。你的程序是在寫作還是在閱讀,還是另一個過程? – SimonC

+0

恐怕你是對的,這個問題沒有多大意義。你能否澄清誰在寫文件和誰在閱讀?這兩個過程是同一個過程嗎?如果它有兩個獨立的過程,你是否控制它們? – Blckknght

+0

我不太瞭解Excel編程,但我懷疑你需要從另一端解決這個問題,以做你想做的事。你可以改變數據添加到excel文件的方式,以便在每次添加後保存文件?我不認爲從Python方面會有任何簡單的方法可以做到這一點,至少不是僅僅接觸數據文件。另一方面,您可能需要在問題中添加「excel」標籤。 – Blckknght

回答

1

如果該文件是由另一個進程打開,你不能告訴進程,以節省您的程序打開文件之前,它的變化。您的流程只能讀取其他流程選擇編寫的更改。

這聽起來像你所描述的是,有一個文件,是一個過程,是在更改文件打開 - 說,用戶在文本編輯器中編輯的文本文件。同時,您希望您的進程打開正在更改的文件,並能夠讀取文件的待處理更改。因此,您希望其他進程在進程打開文件之前「保存」或寫出更改。這樣你的過程就會看到對文件所做的更改。所以你希望你的進程在「讀取」文件之前「保存」文件。

不幸的是,這不是程序和文件如何交互。當其他進程決定將更改寫入文件時,您的進程只能看到更改。

+0

我剛纔意識到我的問題不是很聰明。你絕對有這個想法,並設法簡潔地解釋爲什麼我的推理是不合邏輯的。所以謝謝!我會在寫作時找到另一種自動保存的方法。 – Blessoul

+0

您只需要用戶在程序獲取更新之前保存更改。我確信有一種方法可以讓你的程序在被監視的文件被寫入時被Windows通知。我不知道如何在Python中做到這一點,但也許你可以在另一個SO問題中找到一些東西。 –