在windows中:双击运行Python程序、后台运行Python程序

一、安装Python解释器的windows环境,如果双击运行*.py的文件,会闪退。怎样避免闪退呢?

1、bat启动

start_show.bat  中

1
python main.py

  

 

2、升级版:vbs后台运行(×××面)

start_hidden.vbs  中

1
2
Set  ws  =  CreateObject( "Wscript.Shell" )
ws.run  "cmd /c start_show.bat" , 0

  

 

二、windows中怎么快捷杀掉Python程序?

答:bat杀

stop_all_python.bat  中

1
taskkill  / IM python.exe  / F

  

附录:

main.py 中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import  os
import  logging
import  time
 
# 如果日志文件夹不存在,则创建
log_dir  =  "log"   # 日志存放文件夹名称
log_path  =  os.getcwd()  +  os.sep  +  log_dir
if  not  os.path.isdir(log_path):
     os.makedirs(log_path)
 
# 设置logging
logger  =  logging.getLogger()
logger.setLevel(logging.DEBUG)
main_log_handler  =  logging.FileHandler(
     log_dir  +  "/dd_%s.log"  %  time.strftime( "%Y-%m-%d_%H-%M-%S" , time.localtime(time.time())), mode = "w+" ,
     encoding = "utf-8" )
main_log_handler.setLevel(logging.DEBUG)
formatter  =  logging.Formatter( "%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s" )
main_log_handler.setFormatter(formatter)
logger.addHandler(main_log_handler)
 
# 控制台打印输出日志
console  =  logging.StreamHandler()   # 定义一个StreamHandler,将INFO级别或更高的日志信息打印到标准错误,并将其添加到当前的日志处理对象
console.setLevel(logging.INFO)   # 设置要打印日志的等级,低于这一等级,不会打印
formatter  =  logging.Formatter( "%(asctime)s - %(levelname)s: %(message)s" )
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)
 
while  True :
     time_stamp  =  time.time()
     # print("时间戳",time_stamp)
     logger.info( "时间戳 %s"  %  time_stamp)
 
     sec  =  3
     logger.info( "睡眠 %s 秒"  %  sec)
     time.sleep(sec)

  

文件截图:

 

使用说明:

1、带界面双击启动

双击start_show.bat 

会出现cmd窗口,同时会产生日志文件夹

 

2、不带界面后台运行程序

双击start_hidden.vbs

进程会增加一个python.exe进程,增加的python.exe进程为后台启动的,可以通过日志查看

 

3、杀死所有Python.exe进程

双击stop_all_python.bat

所有的Python进程都消失了,第1部中产生的cmd窗口也消失了。