python怎么写运维脚本_python面试题讲解:python中常用的5个运维脚本

今天的达内python培训主要想为大家带来python中常用的5个运维脚本面试题实例的讲解,希望对正在进行python培训学习、面试、工作的你有所帮助,来了解一下吧:

20180717155641_517.png

file是一个类,使用file('file_name',

'r+')这种方式打开文件,返回一个file对象,以写模式打开文件不存在则会被创建。但是更推荐使用内置函数open()来打开一个文件。

首先open是内置函数,使用方式是open('file_name', mode,

buffering),返回值也是一个file对象,同样,以写模式打开文件如果不存在也会被创建一个新的。

f=open('/tmp/hello','w')

#open(路径+文件名,读写模式)

#读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式

如:'rb','wb','r+b'等等

读写模式的类型有:

rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)

w 以写方式打开,

a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)

r+ 以读写模式打开

w+ 以读写模式打开 (参见 w )

a+ 以读写模式打开 (参见 a )

rb 以二进制读模式打开

wb 以二进制写模式打开 (参见 w )

ab 以二进制追加模式打开 (参见 a )

rb+ 以二进制读写模式打开 (参见 r+ )

wb+ 以二进制读写模式打开 (参见 w+ )

ab+ 以二进制读写模式打开 (参见 a+ )

注意:

1、使用'W',文件若存在,首先要清空,然后(重新)创建,

2、使用'a'模式 ,把所有要写入文件的数据都追加到文件的末尾,即使你使用了seek()指向文件的其他地方,如果文件不存在,将自动被创建。

f.read([size]) size未指定则返回整个文件,如果文件大小>2倍内存则有问题.f.read()读到文件尾时返回""(空字串)

file.readline() 返回一行

file.readline([size]) 返回包含size行的列表,size 未指定则返回全部行

for line in f:

print line #通过迭代器访问

f.write("hello ") #如果要写入字符串以外的数据,先将他转换为字符串.

f.tell() 返回一个整数,表示当前文件指针的位置(就是到文件头的比特数).

f.seek(偏移量,[起始位置])

用来移动文件指针

偏移量:单位:比特,可正可负

起始位置:0-文件头,默认值;1-当前位置;2-文件尾

f.close() 关闭文件

要进行读文件操作,只需要把模式换成'r'就可以,也可以把模式为空不写参数,也是读的意思,因为程序默认是为'r'的。

>>>f = open('a.txt', 'r')

>>>f.read(5)

'hello'

read( )是读文件的方法,括号内填入要读取的字符数,这里填写的字符数是5,如果填写的是1那么输出的就应该是‘h’。

打开文件文件读取还有一些常用到的技巧方法,像下边这两种:

1、read( ):表示读取全部内容

2、readline( ):表示逐行读取

一、用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, οnerrοr=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 ' '

三、猜数器

程序随机生成一个个位数字,然后等待用户输入,输入数字和生成数字相同则视为成功。成功则打印三角形。失败则重新输入(提示:随机数函数: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 ' '

else:

print 'please input number again'

四、生成磁盘使用情况的日志文件

#!/usr/bin/env python

#!coding=utf-8

import time

import os

ew_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:

um = list.count(j)

print '%s : %s' %(j,num)

你正好需要,我恰好专业!恭喜你阅读完了本文,今天为大家带来python中常用的5个运维脚本面试题实例的讲解,你都听懂了吗?希望今天的分享对你有所帮助,更多python相关的问题,尽在达内python培训,敬请关注!

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python是一种强大的编程语言,常被用于编运维脚本。而Linux运维脚本指的是用于在Linux操作系统上执行运维任务的脚本。下面是关于Python Linux运维脚本的一些重要信息。 首先,Python具有丰富的库和模块,可以轻松地与操作系统交互。通过使用Python的os模块,我们可以执行与文件和目录相关的任务,如创建、删除、移动和重命名文件和目录。 其次,Python可以通过subprocess模块调用Linux命令。这对于在Linux系统上执行各种系统管理任务非常有用,如安装软件包、配置网络、管理用户和组等。通过subprocess模块,我们可以在Python脚本调用shell命令,并获取命令的输出结果。 另外,Python还可以通过paramiko模块执行远程操作。Paramiko是一个用于SSH连接和文件传输的Python库,我们可以使用它来连接到远程服务器并执行命令。这对于Linux系统管理员来说非常有用,可以远程执行命令、传输文件以及进行远程服务器的管理和监控。 此外,Python还可以通过fabric库进行自动化部署和管理。Fabric是一个基于Python开发的用于自动化部署和系统管理的库,它简化了一系列常用的系统管理任务,如批量执行命令、上传和下载文件、执行远程脚本等。使用Fabric,我们可以编简洁、可维护的自动化脚本,提高工作效率。 总而言之,Python是一种功能强大的编程语言,适合编Linux运维脚本。它提供了丰富的库和模块,使得在Linux系统上执行各种任务变得容易。无论是执行本地命令、远程操作还是自动化部署,Python都是一个理想的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值