第一题的要求是统计当前目录下面,文件的种类并标出数量
代码如下:
import os
mulu=os.listdir(os.curdir)
type_kind={}
for i in mulu:
if os.path.isdir(i): #这里要把文件夹选项和其他的文件类型分开,因为文件夹是没有后缀的!!!
type_kind.setdefault('folder',0)
type_kind['folder']+=1
else:
ext=os.path.splitext(i)[1] #这里要用splitext哦,本来还想着用split('.'),其实完全可以用os.path的命令来做
type_kind.setdefault(ext,0)
type_kind[ext]+=1
for key in type_kind: #这里我本来用enumerate功能,但是结果出来数字是01234,这是错的,因为enumerate显示的是下标!!!不是key映射的value值!!
print ('under this folder there are %s files %s pcs'%(key,type_kind[key]))
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第二题是:
统计当前目录下的文件的大小
代码如下:
import os
mulu=os.listdir(os.curdir)
size={}
for i in mulu:
if os.path.isfile(i): #
这里用isfile来检测是否是文件,如果文件夹的话就直接剔除了。
filesize=os.path.getsize(i) #
getsize函数,用来获取文件大小
size[i]=filesize #添加键和值进去
for key in size:
print (key,size[key],'bytes')
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第二题是创建一个简单搜索引擎,要求如下,代码如下
这道题目完全不会啊。。。。看的答案敲的
import os
def search(source,target):
os.chdir(source) #
这句话相当于在后台把搜索开始的文件夹位置修改
for i in os.listdir(os.curdir):
if i==target:
print (os.getcwd()+os.sep+i) #
getcwd是当前文件夹名,os.sep是当前操作系统的分隔符,记住,这里是文件在当前文件夹下面
if os.path.isdir(i):
search(i,target) #
这里用到了递归.......不会用,但是能看懂
os.chdir(os.pardir)
source=input('please enter the source folder name: ')
target=input('please enter the target file name: ')
search(source,target)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
下一题,要求搜索当前所有文件夹下面 规定后缀的文件,要求如下。
代码如下:
import os
content=[]
target=['.avi','.mp4','.rmvb']
def video(source,target): #参数还是要选好,不然代码会写得很难看,本来写的是source和新建文件的名字,后来看答案还是source和目标后缀名比较好
os.chdir(source)
for i in os.listdir(os.curdir):
ext=os.path.splitext(i)[1]
if ext in target:
content.append(os.path.abspath(i)+os.
linesep) #
这句还可以写成os.getcwd()+os.sep+os.linesep,sep是当前操作系统的分隔符,linesep是当前操作系统换行符, # 如果不写linesep的话,下面videolist打印出来的结果不会自动换行
if os.path.isdir(i):
video(i,target)
os.chdir(os.pardir)
source=input('please enter the initial directory: ')
video(source,target)
road=os.getcwd()
f=open('videolist.txt','w')
for x in content:
f.writelines(x)
f.close()