import
os
dict
=
{}
for
d,
fd,
fl
in
os.walk('/home/ahda/Program/'):
for
f
in
fl:
sufix
=
os.path.splitext(f)[1][1:]
if
dict.has_key(sufix):
dict[sufix]
+=
1
else:
dict[sufix]
=
1
for
item
in
dict.items():
"%s
:
%s"
%
item
这里的关键是os.path.splitext()
这是跟楼上不同的地方。如abc/ef.g.h
楼上出来的后缀会是g.h
而我的是h
Python程序的扩展名有.py、.pyc、.pyo和.pyd。.py是源文件,.pyc是源文件编译后的文件,.pyo是源文件优化编译后的文件,.pyd是其他语言写的Python库。在写Python程序时我们常见的扩展名是py,pyc,其实还有其他几种扩展名。以下是详细内容介绍:
py:py就是最基本的源码扩展名。Windows下直接双击运行会调用Python.exe执行。
pyw:pyw是另一种源码扩展名,跟py唯一的区别是在Windows下双击pyw扩展名的源码会调用Pythonw.exe执行源码,这种执行方式不会有命令行窗口。主要用于GUI程序发布时不需要看到控制台信息的情况。
pyc:在执行Python代码时经常会看到同目录下自动生成同名的pyc文件。这是Python源码编译后的字节码,一般会在代码执行时自动生成你代码中引用的py文件的pyc文件。这个文件可以直接执行,用文本编辑器打开也看不到源码。
pyo:pyo是跟pyc类似的优化编码后的文件。
pyd:pyd并非从Python程序生成,而是其他语言写成的可以被Python调用的扩展。
python文件后缀一般有两个,分别是.py和.pyw视窗用 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 ,
以便运行时能调出控制台窗口,看到所有错误信息,方便除虫。