码迷,mamicode.com
首页 > 其他好文 > 详细

5、文件处理

时间:2014-10-07 20:17:33      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   os   ar   strong   文件   数据   

用来处理系统中的文件内容

 
什么情况下需要处理文件?
§读取配置文件
§读取数据信息
§分析处理日志文件
§存入数据到文件
 
打开文件
打开文件方式一:
open(‘filename‘, [‘mode‘])
 打开文件方式二:
file (‘filename‘,[‘mode‘])
mode:
  a : append
  w: write and replace old one
  r: read , default  mode
  b: binary files
  +:可读写模式(r+:即可读又可追加。w+:即可读又可覆写。a+:可读可追加)
如:
>>> open(/root/file.txt)
<open file /root/file.txt, mode r at 0x7fa536269540>
>>> open(/root/file.txt,w)
<open file /root/file.txt, mode w at 0x7fa5362694b0>
>>> file(/root/file.txt,a)
<open file /root/file.txt, mode a at 0x7fa536269540>

 

 
读取一个文件(readline,readlines):
readline一行一行读文件,直到读完为止;
readlines从当前行读到文尾。
  1. >>> a=open(‘/root/file.txt‘)
  2. >>> a.readline()
  3. ‘1:root:x:0:0:root:/root:/bin/bash\n‘
  4. >>> a.readline()
  5. ‘2:bin:x:1:1:bin:/bin:/sbin/nologin\n‘
  6. >>> a.readlines()
  7. [‘3:daemon:x:2:2:daemon:/sbin:/sbin/nologin\n‘,‘4:adm:x:3:4:adm:/var/adm:/sbin/nologin\n‘,‘5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin\n‘]
  8. >>> a.readline()
  9. ‘‘
 
write()  写一行
>>> a=open(‘/root/file.txt‘,‘a‘)
>>> a.write(‘6:mysql:x:4:7:lp:/var/spool/lpd:/sbin/nologin\n‘)
>>> a.close()
truncate(n)   文件内容只保留2个字符
>>> a=open(‘/root/file.txt‘,‘a‘)
>>> a.truncate(2)
>>> a.close()
seek(n)    光标回到文件开始处第n个字符,如seek(0)则回到开头
>>> a.seek(0)
>>> a.readline()
‘root:x:0:0:root:/root:/bin/bash\n‘
 
小练习:完整打印一个文件
  1. #!/usr/bin/python
    file=open(/root/file.txt,r)
    whileTrue:
            line = file.readline()
            if len(line)==0:break
            print line,

     

小练习:打印文件,并利用split(‘:‘),实现类似awk的功能:
  1. #!/usr/bin/python
    file=open(/root/file.txt,r)
    whileTrue:
            line = file.readline()
            if len(line)==0:break
            newline = line.split(:)
            print newline[0],--,newline[1]
    
    [root@likun python_scripts]# python 8file.py 
    root -- x
    bin -- x
    daemon -- x
    adm -- x
    lp -- x

     

 
小练习:
员工信息存在文件 emp.info 中,读取文件,列出文件中员工id,根据员工id输出该员工详细信息
  1. [root@likun python_scripts]# cat emp.info
    01      lk      18610314061     it
    02      tom     13539393939     net
    03      jack    15093949348     mark
    04      james   13892387464     sale

     

  1. #!/usr/bin/python
    file=open(/root/python_scripts/emp.info,r)
    emp_ids=[]
    whileTrue:
            line=file.readline()
            if len(line)==0:break
            line=line.split()
            emp_ids.append(line[0])
    print emp_ids
    
    whileTrue:
            id = raw_input(input [id] to show info:)
            file.seek(0)
            whileTrue:
                    line=file.readline()
                    if len(line)==0:
                            print We dont have id ,id
                            break 
                    if id == line.split()[0]:
                            print line
                            file.seek(0)
                            id = raw_input(input [id] to show info:)



5、文件处理

标签:style   blog   color   io   os   ar   strong   文件   数据   

原文地址:http://www.cnblogs.com/kissdb/p/4009582.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!