用户登录Windows后无法写入文件

时间:2013-09-02 13:57:19

标签: python windows file-io startup

我写了一个程序,将一些文字写入" log.txt"用户登录时的文件(我将此程序作为任务添加到具有触发器的任务调度程序"登录时#34;)。为了检查程序是否会启动,我还添加了一些代码让它显示一个窗口。

from PySide.QtCore import *
from PySide.QtGui import *
import sys
import logging

# file writing test, failed
logging.basicConfig(filename='log.txt', level=logging.DEBUG)
logging.info('loaded logging module')

app = QApplication(sys.argv)
w = QWidget()
vbox = QVBoxLayout()
w.setLayout(vbox)

# file reading test
f = open('d:\write_file.py')
text = f.read()
f.close()

vbox.addWidget(QLabel(text))
w.show()

app.exec_()

然后重新启动系统后,我可以看到窗口显示,但是" log.txt"文件甚至不存在!为什么会这样?

PS。我已经使用PyInstaller将脚本冻结为exe,如果它有帮助

1 个答案:

答案 0 :(得分:1)

任务计划程序作为特定系统用户运行,而不是刚刚登录的用户。这意味着您的代码无权更改用户的文件。

虽然您可以指定任务计划程序应使用的用户,但您不能说“当前用户”。

您有两种选择:

  1. 将文件放入Autostart文件夹中,登录代码将以用户身份执行。

  2. 更改您要写入的文件的权限,并为调度程序用户提供写入权限。

相关问题