2016-02-15 222 views
4

我試圖製作一個將寫入文件的python循環腳本。在啓動時執行時不寫入文件的Python腳本

當我在終端執行腳本時,文件寫入沒有問題。

我不想在啓動時啓動這個腳本,所以我把它放在rc.local文件中。腳本運行,但它不寫輸出到指定的文件..

我做了一些閱讀沖洗和無緩衝輸出.. 任何人都可以幫助我或指出我在正確的方向嗎?

當該腳本完成它會使用REST發送的文件,但我需要之前,我甚至那裏寫入文件..

腳本:

#!/usr/bin/python -u 

while True: 
    try: 
     print "This is only a test..." 
     with open("loop.txt", "a") as loopFile: 
      loopFile.write("This is only a test...") 
      loopFile.write('\n') 
      loopFile.flush() 
      loopFile.close() 
     time.sleep(1) 
    except KeyboardInterrupt: 
     break 
     quit() 

的/ etc/rc中.local文件:

/usr/bin/python /home/pi/loop.py & 

loop.py和loop.txt都具有讀/寫/執行權限。

+1

由於您使用'開放的()',你不需要'loopFile.close()' –

+1

這個腳本中幾乎肯定運行與在終端上時不同的工作目錄...打開文件時需要指定完整路徑名稱。 – gariepy

+1

這是因爲操作系統爲您運行它時文件「loop.txt」不存在。你需要指定完整路徑 – Fredrik

回答

5

添加全路徑名來聲明打開文件:

#!/usr/bin/python -u 

while True: 
    try: 
     print "This is only a test..." 
     with open("/home/users/sj091190/loop.txt", "a") as loopFile: 
      loopFile.write("This is only a test...") 
      loopFile.write('\n') 
      loopFile.flush() 
     time.sleep(1) 
    except KeyboardInterrupt: 
     break 
     quit() 
+0

哇,那是一個快速編輯!幹得好,@VincentSavard – gariepy

+0

這工作完美。謝謝! – sjo91190

+0

@ sjo91190:請參閱[_當某人回答我的問題時該怎麼辦?_](http://stackoverflow.com/help/someone-answers) – martineau

相關問題