"*.py"和"*.pyw"的区别
2014-02-21 15:27
387 查看
python的文件格式有两种,"*.py"和"*.pyw",它们有什么不同?
问题python的文件格式有两种,"*.py"和"*.pyw",它们有什么不同?
答案
实际上区别不大,不过*.py用python.exe解释,运行时会出现控制台窗口(也就是字符界面),*.pyw则用pythonw.exe解释,运行时不会出现控制台窗口,主要用于一些要图形界面的程序上,没理由当打开一个windows界面的时候还要在后面开一个黑黑的窗口吧,着应该是设计者的初衷吧我猜。
严格来说,它们之间的不同就只有一个:视窗运行它们的时候调用不同的执行档案。
视窗用 python.exe 运行 .py ,用 pythonw.exe 运行 .pyw 。
这纯粹是因为安装视窗版 Python 时,扩展名 .py 自动被登记为用 python.exe 运行的文件,
而 .pyw 则被登记为用 pythonw.exe 运行。
.py 和 .pyw 之间的“其它差别”全都是 python.exe 和 pythonw.exe 之间的差别。
跟 python.exe 比较起来,pythonw.exe 有以下的不同:
1)执行时不会弹出控制台窗口(也叫 DOS 窗口)
2)所有向原有的 stdout 和 stderr 的输出都无效
3)所有从原有的 stdin 的读取都只会得到 EOF
.pyw 格式是被设计来运行开发完成的纯图形界面程序的。
纯图形界面程序的用户不需要看到控制台窗口。
值得一提的是,开发纯图形界面程序的时候,你可以暂时把 .pyw 改成 .py ,
以便运行时能调出控制台窗口,看到所有错误信息,方便除虫。
注:唯独视窗版 Python 有 .pyw 格式。
转自:http://www.dnxxj.com/questions/4757950c0af74f/python%E7%9A%84%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E6%9C%89%E4%B8%A4%E7%A7%8D%EF%BC%8C%26quot%3B*.py%26quot%3B%E5%92%8C%26quot%3B*.pyw%26quot%3B%EF%BC%8C%E5%AE%83%E4%BB%AC%E6%9C%89%E4%BB%80%E4%B9%88%E4%B8%8D%E5%90%8C%EF%BC%9F.html
相关文章推荐
- <jsp:include>和<%@include file=""%>的区别
- <%@ include file=""%>与<jsp:include page=""/>区别
- <%@ include file=""%>与<jsp:include page=""/>区别
- "=="和equals方法究竟有什么区别?
- "equals"和"=="的区别
- " "和null的区别
- <%@ page include=""%> 和<jsp:include flush="true" page=""></jsp:include>两者的区别
- "推技术"与"拉技术"的区别
- "<br />"和 "\r\n" 这两者有什么区别??
- <s:form action="login"...与<s:form action = "login.action".的区别
- C语言关于"0" '0' '\0'之间的区别。
- "git rm" 和 "rm" 的区别
- "i++"和"++i"的区别
- VS.NET中的"生成解决方案"和"重新生成解决方案"有什么区别?
- <jsp:include page="xxx"> 和<%@include file="xxx">区别
- "=="和equals方法究竟有什么区别
- 使用".."指定git提交范围与"..."指定git提交范围的区别
- <jsp:include page=""/>和<%@include file=""%>-----JSP中两种页面引入方式的区别
- "".equals(str)和str.equals('"")的区别
- _stdcall与_cdecl区别 (QT 加载MFC的dll时,要注意的"_stdcall"或者CALLBACK的问题)