2017-04-18 31 views
1

嘿,谢谢你的所有答案。我尝试写一段只能执行一次的python代码(第一次安装该程序)并将该程序复制到Windows启动文件夹中。仅执行一次的代码,Python启动文件夹

(C:\用户\ USER \应用程序数据\漫游\微软\的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。我尝试生成一个批处理文件,其中有 没有任何内容在安装过程结束时执行(但错误是仍然存在)

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。

+0

您应该发布错误消息与完整的堆栈跟踪。 –

+0

C:\ Users \ Main \ AppData \ Local \ Programs \ Python \ Python35 \ python.exe“C:/ Users/Main/Desktop/Py Sandbox/Program/Program.py” “安装程序”未被识别为内部或外部命令, 可操作的程序或批处理文件。 – Cvqe

回答

0

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

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) 

这个脚本获取你的用户名,启动驱动器, 文件比的文件位置创建所需的所有路径。像你的个人 启动文件夹。它比检查 启动文件夹中是否已有文件,如果是,它只是没有任何作用,如果不是, 将文件复制到启动文件夹并重命名它(如果你想要,但可以使用它不需要)。