Kiss my DB

你所浪费的今天,正是昨日我熬到深夜所期待的明天...珍惜当下,无论生活工作

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

 
什么情况下需要处理文件?
§读取配置文件
§读取数据信息
§分析处理日志文件
§存入数据到文件
 
打开文件
打开文件方式一:
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:')



posted on 2014-10-07 17:44  小kiss  阅读(183)  评论(0编辑  收藏  举报