2014-10-10 98 views
0

出於某種原因,這讓我非常震驚,我有一個python程序,在Windows Task Scheduler運行它時不起作用。我只是更新了程序,並且在它每次都成功運行的同時,每次都會失敗。
真奇怪的是,如果我運行獨立於任務計劃程序的python腳本,它的工作原理就好了!Python不會運行任務計劃程序,但會正常運行?

因此舊程序和新程序之間的主要區別在於舊程序使用了urllib.request,新程序使用open(),os.listdir和os.path.join在本地運行 當我運行程序通過Windows任務計劃程序,對調度結果表示「(爲0x1)」,並在Windows CMD窗口閃爍起來說:

Traceback <most recent call last>: 
File 「C:\Users\User\Documents\Python\Test\Client\Beige.py」 , line 16 in (module) 
For filename in os.listdir(‘Website_Check」): 
FileNotFoundError: [WinError3] the system cannot find the path specified: 
「Website_Check」 

所以基本上,當我運行該程序直線上升,它訪問外部。 txt文件很好,但從任務計劃程序它不?我需要幫助。任何人都有這方面的經驗嗎?

(我知道我可以只保存在同一目錄下的txt文件,而不是一個子目錄,但我必須有另一個程序每天修改txt文件的另一個文件夾)

+0

順便說一下,我的代碼很好,因爲它在任務計劃程序之外正常工作 – 2014-10-10 15:31:39

回答

1

確保您使用程序中的絕對路徑,而不是相對路徑。任務計劃程序可能從另一個目錄運行程序,並且如果程序中有相對路徑,則無法找到它們。解決此問題的簡單方法是把你的程序的頂部以下行(假設你已導入os):

os.chdir("c:/Users/User/Documents/Python/Test/Client") 

現在,所有下面的命令正在從這個目錄中運行,而相對路徑應該管用。

+0

Ahhhhh你太聰明瞭......我永遠感激:)大聲笑它總是最簡單的解決方案,完全不顧我的意思! – 2014-10-10 15:40:28