五个python常用运维脚本面试题实例
来源:马哥教育
原文作者:chengxuyuan
链接:https://mp.weixin.qq.com/s/nahDVL6aiMQ2vp85wo6nNw
一、用Python写一个列举当前目录以及所有子目录下的文件,并打印出绝对路径
#!/usr/bin/env python
import os
for root,dirs,files in os.walk('/tmp'):
for name in files:
print (os.path.join(root,name))
os.walk()
原型为:os.walk(top, topdown=True,
onerror=None, followlinks=False)
我们一般只使用第一个参数。(topdown指明遍历的顺序)
该方法对于每个目录返回一个三元组,(dirpath, dirnames,
filenames)。
第一个是路径,第二个是路径下面的目录,第三个是路径下面的非目录(对于windows来说也就是文件)
二、写程序打印三角形
#!/usr/bin/env python
input = int(raw_input('input number:'))
for i in range(input):
for j in range(i):
print '*',
print '\n'
[if !supportLineBreakNewLine]
[endif]
三、猜数器
程序随机生成一个个位数字,然后等待用户输入,输入数字和生成数字相同则视为成功。成功则打印三角形。失败则重新输入(提示:随机数函数:random)
#!/usr/bin/env python
import random
while True:
input = int(raw_input('input number:'))
random_num = random.randint(1, 10)
print input,random_num
if input == random_num:
for i in range(input):
for j in range(i):
print '*',
print '\n'
else:
print 'please
input number again'
[if !supportLineBreakNewLine]
[endif]
四、生成磁盘使用情况的日志文件
#!/usr/bin/env python
#!coding=utf-8
import time
import os
new_time = time.strftime('%Y-%m-%d')
disk_status = os.popen('df -h').readlines()
str1 = ''.join(disk_status)
f = file(new_time+'.log','w')
f.write('%s' % str1)
f.flush()
f.close()
五、统计出每个IP的访问量有多少?(从日志文件中查找)
#!/usr/bin/env python
#!coding=utf-8
list = []
f = file('/tmp/1.log')
str1 = f.readlines()
f.close()
for i in str1:
ip = i.split()[0]
list.append(ip)
list_num = set(list)
for j in list_num:
num = list.count(j)
print '%s : %s' %(j,num)
Python学习
网友评论