只执行一次的代码,Python启动文件夹

问题描述 投票:0回答:3

嘿,感谢您的所有回答。我尝试编写一段只执行一次的Python代码(第一次安装程序时)并将程序复制到Windows启动文件夹中。

(C:\用户\USER\AppData\Roaming\Microsoft\Windows\开始菜单\程序\启动)

这就是我为此编写的代码。 (请不要评判我。我知道这是 非常糟糕的代码。但我对编码很陌生。 (这是第二个 我尝试编写的小程序)

import os
import shutil


#get username
user = str(os.getlogin())
user.strip()

file_in = ('C:/Users/')
file_in_2 = ('/Desktop/Py Sandbox/test/program.py')
file_in_com = (file_in + user + file_in_2)

folder_seg_1 = ('C:/Users/')
folder_seg_2 = ('/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup')
#create FolderPath
folder_com = (folder_seg_1 + user + folder_seg_2)

shutil.copy2(file_in_com, folder_com)

因为我得到一个错误,没有这样的内部、外部、 名为 Installer.com 的命令、程序或批处理文件。我尝试生成一个批处理文件 安装过程完成后,其中没有执行任何内容。(但错误仍然存在。)

save_path = 'C:/Windows/assembly/temp'
name_of_file = str("Installer")
completeName = os.path.join(save_path, name_of_file+".bat")
file1 = open(completeName, "w")
file1.close()

这背后的主要思想是我的主程序,你执行 它会运行上面的代码并将其自身复制到启动文件夹。 然后整个安装程序文件的代码将从我的主目录中删除 程序。

import Installer

#run Installer File
os.system('Installer')
os.remove('Installer.py')

但也许有人知道这个问题的答案。 正如我之前所说,感谢您的所有回答 <3.

顺便说一句,我目前正在使用 Python 3.5。

python batch-file directory python-3.5 startup
3个回答
1
投票

好了大家现在我终于解决了这个问题。其实这并不难,但是你需要从另一个角度去思考。 这就是我现在想出的代码。

import os
import sys
import shutil

# get system boot drive
boot_drive = (os.getenv("SystemDrive"))

# get current Username
user = str(os.getlogin())
user.strip()

# get script path
script_path = (sys.argv[0])


# create FolderPath (Startup Folder)
folder_seg_1 = (boot_drive + '/Users/')
folder_seg_2 = ('/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup')
folder_startup = (folder_seg_1 + user + folder_seg_2)


#check if file exits, if yes copy to Startup Folder
file_name = (ntpath.basename(script_path))
startup_file = (folder_startup + ("/") + file_name)
renamed_file = (folder_startup + ("/") + ("SAMPLE.py"))


# checkfile in Startup Folder
check_path = (os.path.isfile(renamed_file))

if check_path == True:
    pass
else:
    shutil.copy2(script_path, folder_startup)
    os.rename(startup_file, renamed_file)

此脚本获取您的用户名、启动驱动器、文件位置 您的文件将创建所需的所有路径。就像你个人的 启动文件夹。然后它检查是否已经有一个文件 启动文件夹如果是,则不执行任何操作并继续,如果不是 将文件复制到启动文件夹,然后重命名它(如果需要,可以使用它,但不需要)。


0
投票

没有必要执行

os.getenv("SystemDrive")
os.getlogin()
,因为
os.getenv("AppData")
已经获得了两者。所以我所知道的最直接的方法是:

path = os.path.join(os.getenv("appdata"),"Microsoft","Windows","Start Menu","Programs","Startup")

0
投票

您应该使代码尽可能简单,这是您可以使用的代码

import os
import shutil

user = str(os.getlogin()).strip()
print(user)

shutil.move("to move file", 
"C:/Users/"+user+"/AppData/Roaming/Microsoft/Windows/Start 
Menu/Programs/Startup")
© www.soinside.com 2019 - 2024. All rights reserved.