簡體   English   中英

Python 腳本在使用 Windows 調度程序時找不到文件

[英]Python script can't find file when using Windows Scheduler

我有一個批處理文件來執行 Python 並運行 Python 腳本,該腳本在手動運行時可以正常工作。 但是,當使用 Windows 任務計划程序運行時,Python 腳本給了我一個回溯,因為它找不到與 ZA7F5F35426B927411FC9231B56382 位於同一文件中的 .TXT 文件。

“批處理文件手動工作但不能使用任務計划程序”問題有多種形式。 我認為我的問題可能與我的 Python 腳本位於虛擬環境中有關。 它也可能與 Windows 用戶帳戶和權限有關。 過去有關任務計划程序的帖子已通過更改與用戶帳戶相關的設置得到解決,但到目前為止這對我沒有用。

有關 Windows 任務計划程序設置的更多詳細信息:

以下是我為任務選擇的設置:

在此處輸入圖像描述

當我使用“僅在用戶登錄時運行”選項時,我的任務最接近工作。如果我選擇“無論用戶是否登錄都運行”,該任務會打開一個命令提示符,但似乎沒有執行任何操作。

有關批處理文件的更多詳細信息

我的批處理文件如下所示:

"C:\Users\MyPathtovirtualenvironment\virtualenv\Scripts\python.exe" "C:\Users\fried\Desktop\calendaralert\court_calendar_alert1.3_automatic.py" 
pause

當手動運行時,它會做它應該做的事情:它從虛擬環境中執行 Python,然后加載 Python 腳本,該腳本正常運行,除非它從 ZAEA23489CE3AAA9B43006EBB28ECD 運行。

有關 Python 腳本的更多詳細信息

Python 腳本在命令提示符下和作為批處理文件單獨運行時工作正常,所以我認為它沒有任何直接錯誤。 這是導致回溯的腳本部分。

with open('replacements.txt') as f:
    replacements = dict(x.rstrip().split("!") for x in f)

replacements.txt 文件與我的 Python 程序位於同一文件夾中。 我還嘗試將文件的副本放在虛擬環境文件夾和 /scripts 子文件夾中,但沒有成功。

剛剛在 windows ec2 實例上運行 python 腳本時遇到了這個問題。 通過在頂部添加以下內容,問題得到了解決:

import os
path = "your-directory-path"
os.chdir(path)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM