您的位置:首页 > 编程语言 > Python开发

python os模块 练习题

2016-10-12 21:42 302 查看
Python的os模块封装了操作系统的目录和文件操作,要注意这些函数有的在
os
模块中,有的在
os.path
模块中。

1.
利用
os
模块编写一个能实现
dir
-l
输出的程序。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
import time
import re

dirpath=r'D:\Exercises\python'
listFile(dirpath)
findFile(dirpath,'.py')

def listFile(path):
print('权限\t文件数\t用户名\t群组名\t大小\t月份\t日期\t时间\t文件名')
for x in os.listdir(path):
dir=os.path.join(path,x)
st=os.stat(dir)
print(oct(st.st_mode)[-3:],end='\t')
print(numOfFiles(dir),end='\t')
print(st.st_uid,end='\t')
print(st.st_gid,end='\t')
print(st.st_size,end='\t')
lc_time=time.localtime(st.st_mtime)
print(time.strftime('%b',lc_time),end='\t')
print(lc_time.tm_mday,end='\t')
print(time.strftime('%H:%M',lc_time),end='\t')
print(x)

#计算文件夹数,最小为1
def numOfFiles(path,num=1):
try:
for x in os.listdir(path):
dir=os.path.join(path,x)
if os.path.isdir(dir):
num+=1
num=numOfFiles(dir,num)
except BaseException as e:
pass
finally:
return num

2. 编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import os

keyword = input('Input keyword: ')
up = '.'
result = []

def check(up, keyword):
all = os.listdir(up)
for x in all:
try:
abs_x = os.path.join(up, x)
if os.path.isdir(abs_x):
up = os.path.join(up, x)
check(up, keyword)
up = os.path.split(up)[0]
if os.path.isfile(abs_x):
if keyword in x:
result.append(abs_x)
except:
continue

check(up, keyword)
print('\n==========Find %d files==========\n' % len(result))
num = 0
for r in result:
num += 1
print('%d  %s' % (num, r))
print('\n===============END===============\n')
os.system("pause")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: