Python培训
400-996-5531
今天的达内python培训主要想为大家带来python中常用的5个运维脚本面试题实例的讲解,希望对正在进行python培训学习、面试、工作的你有所帮助,来了解一下吧:
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, 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 ' '
三、猜数器
程序随机生成一个个位数字,然后等待用户输入,输入数字和生成数字相同则视为成功。成功则打印三角形。失败则重新输入(提示:随机数函数: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培训,敬请关注!
免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved