今天写一个python小脚本,在windows下将当前状态下,所有的task的名字输出到一个文件里,然后将这个脚本转化成exe文件。
先看一下python脚本TaskNameList.py:
- import
subprocess -
- #
running the command "tasklist" in cmd.exe - popen
= subprocess.Popen("tasklist",stdout=subprocess.PIPE,shell= True) - namelist
= [] -
- #
get the task name - for
line in popen.stdout.readlines()[3:]: -
name = line.split()[0] -
if name not in namelist: -
namelist.append(name) -
- popen.stdout.close()
-
- #
wirte the name into the file TaskNameList - file
= open(r".\TaskNameList.txt",'w') - file.writelines('\n'.join(namelist))
- file.close()
接下来我用了第三方的软件py2exe,将python脚本软化为exe可执行文件,在看完了py2exe官网上的tutorial后,写一个setup.py脚本
- from
distutils.core import setup - import
py2exe -
- setup(console=["'TaskNameList.py"])
在查阅了资料后,我重写了一setup.py方法:
- from
distutils.core import setup - import
py2exe - import
sys - includes
= ["encodings", "encodings.*"] - sys.argv.append("py2exe")
- options
= {"py2exe": { "bundle_files": 1 } -
} - setup(options
= options, -
zipfile=None, -
console = [{"script":'TaskNameList.py'}])
这次直接执行python setup.py,就可以生成一个独立的exe文件了,当然这个文件还是在dist文件夹下。
这个文件比之前那个的最重要的改进在于两个参数:
- "bundle_files":
1
3 (default) | don't bundle |
2 | bundle everything but the Python interpreter |
1 | bundle everything, including the Python interpreter |
- zipfile=None,
zipfile = None指定把library.zip也打包进exe 里了。
附:
- from
distutils.core import setup - import
py2exe - import
sys - includes
= ["encodings", "encodings.*"] - sys.argv.append("py2exe")
- options
= {"py2exe": { "bundle_files": 1 } -
} - setup(options
= options, -
zipfile=None, -
console = [{"script":'TaskNameList.py', 'icon_resources':[(1, 'logo.ico')]}])