我有一个程序,使批处理文件放入启动文件夹本身。当您手动启动程序时,此操作有效,但当程序已在“Startup”文件夹中并且在启动时自动启动时,我会收到以下错误:
Fatal Error: Python failed to execute the script
我把它缩小到创建并写入批处理文件本身的函数,尽管当程序已经在startup文件夹中时,这个函数是无用的,因为我使用了一个“if”语句来防止这种情况发生。你知道吗
下面是函数的代码:
def moveIO():
move = open('moveIO.bat','w')
move.write('move /Y "' + str(dirName) + '\\FPSBooster.exe" "' + str(targetPath) + '\\Microsoft\\Windows\\Start Menu\\Programs\\Startup"')
move.close()
以下是变量和“if”语句,用于检测程序是否已在stratup文件夹中:
dirName = os.path.dirname(os.path.abspath(__file__))
targetPath = os.getenv('APPDATA')
if dirName != targetPath + '\\Microsoft\\Windows\\Start Menu\\Programs\\Startup':
moveIO()
试试这个
w+:打开一个文件进行写入和读取。如果文件存在,则覆盖现有文件。如果文件不存在,则创建一个用于读写的新文件。你知道吗
我们发现,答案隐藏在缺失的信息背后。你知道吗
OP使用了pyinstaller,这造成了很多麻烦。删除它并通过python正确运行脚本直接解决了这个问题。你知道吗
我建议尝试
nuitka
,它将脚本转换为C代码,然后编译成.exe
,从而避免了创建临时目录时丢失访问权限和将python解释器转储到其中等问题。你知道吗相关问题 更多 >
编程相关推荐