圆月山庄资源网 Design By www.vgjia.com
os模块
在python编程中,我们会经常使用到文件和目录,这些操作python提供一个os模块,里面有很多操作文件和目录的函数.
下面介绍os的常用功能
1.获取当前路径
> os.getcwd() '/root/python'
2.获取目录中的内容
> os.listdir(os.getcwd()) ['deco.py', '6.py', 'inputfile.py', 'uniFile.py', 'oddnogen.py', 'ospathex.py', 'operate.py', 'bianliang.py', 'typecheck1.py']
3.创建目录
> os.mkdir('/root/pythontest')
一次性创建嵌套目录可使用os.makedirs,makedirs可以生成多层递归目录,removedirs可以删除多层递归的空目录,若目录中有文件则无法删除;os.system():运行shell命令;
> os.environ['HOME'] '/root' > os.makedirs(os.path.join(os.environ['HOME'],'test','py')) > os.system('ls -lR /root/test') /root/test: total 4 drwxr-xr-x 2 root root 4096 2013-03-29 17:27 py /root/test/py: total 0 0
4.改变工作目录
> os.getcwd() '/root/python' > os.chdir('/etc') > os.getcwd() '/etc'
5.删除目录
> os.rmdir('/root/pythontest') >
注:删除目录必须是空目录
6.删除文件
> os.remove('/root/pytest.py')
7.重命名文件或者目录
> os.rename('/root/pytest.py','/root/test.py')
8.字符串给出当前平台使用的终止符,例如:Windows使用'\r\n',Linux使用'\n'
> os.linesep '\n'
以下是os.path模块
9.判断是否是目录
> os.path.isdir('/root/python') True
10.判断是否为文件
> os.path.isfile('/root/python') False
11.返回一个路径的目录名和文件名
> os.path.split(os.getcwd()) ('/root', 'python')
12.判断是否存在文件或目录name
> os.path.exists('/root') True > os.path.exists('/root/1.py') False
13.获得文件大小
> os.path.getsize('/root/python/if.py') 282
14.返回文件路径,返回文件名
> os.path.dirname('/root/python/if.py') '/root/python' > os.path.basename('/root/python/if.py') 'if.py'
15.连接目录与文件名或目录
> os.path.join('/dave/test/','1.py') '/dave/test/1.py'
判断一个目录里哪些是文件哪些是目录.
> for file in os.listdir('/root/python'): ... if os.path.isdir(file): ... print file,"is a directory" ... else: ... print file,"is a file" ... deco.py is a file inputfile.py is a file operate.py is a file hello.pyc is a file userpw.py is a file 4.py is a file answer is a directory
fileinput模块
fileinput模块可以遍历文本文件的所有行.它的工作方式和readlines很类似,不同点在于,它不是将全部的行读到列表中而是创建了一个xreadlines对象.
下面是fileinput模块中的常用函数
- input() #它会返回能够用于for循环遍历的对象.
- filename() #返回当前文件的名称
- lineno() #返回当前(累计)的行数
- filelineno() #返回当前文件的行数
- isfirstline() #检查当前行是否是文件的第一行
- close() #关闭序列
> import fileinput > for eachline in fileinput.input("/root/datafile.txt"): ... print eachline ... Dave python > for eachline in fileinput.input("/root/datafile.txt"): ... print fileinput.filename() ... /root/datafile.txt /root/datafile.txt > for eachline in fileinput.input("/root/datafile.txt"): ... print fileinput.lineno(),eachline ... 1 Dave 2 python > for eachline in fileinput.input("/root/datafile.txt"): ... if fileinput.isfirstline(): ... print eachline ... else: ... break ... Dave
下面是一个关于日志分析的小实例,将日志中截取匹配的电话号码,如800-333-1212
root@10.1.1.45:~# cat telphone.log 027-987-1212 02187899682 021-110-9632 root@10.1.1.45:~# cat fileinputtest.py #!/usr/bin/python2.5 import fileinput import sys import re pattern = "\d{3}-\d{3}-\d{4}" filePath = "/root/telphone.log" for eachline in fileinput.input(filePath): a = re.search(pattern,eachline) if a: # sys.stdout.write("============\n") # sys.stdout.write(eachline) print "============" print 'line:',fileinput.lineno(),'filename:',fileinput.filename(),'length:',len(eachline.strip('\n')),eachline root@10.1.1.45:~# ./fileinputtest.py ============ line: 1 filename: /root/telphone.log length: 12 027-987-1212 ============ line: 3 filename: /root/telphone.log length: 12 021-110-9632
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
更新日志
2024年11月08日
2024年11月08日
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]