zoukankan      html  css  js  c++  java
  • 5、文件处理

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

     
    什么情况下需要处理文件?
    §读取配置文件
    §读取数据信息
    §分析处理日志文件
    §存入数据到文件
     
    打开文件
    打开文件方式一:
    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 '
    4. >>> a.readline()
    5. '2:bin:x:1:1:bin:/bin:/sbin/nologin '
    6. >>> a.readlines()
    7. ['3:daemon:x:2:2:daemon:/sbin:/sbin/nologin ','4:adm:x:3:4:adm:/var/adm:/sbin/nologin ','5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin ']
    8. >>> a.readline()
    9. ''
     
    write()  写一行
    >>> a=open('/root/file.txt','a')
    >>> a.write('6:mysql:x:4:7:lp:/var/spool/lpd:/sbin/nologin ')
    >>> 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 '
     
    小练习:完整打印一个文件
    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:')



  • 相关阅读:
    【作业4】测试作业-兴趣问题清单
    【读后感3】高效程序员的45个习惯
    【作业3】关于C语言的问卷调查
    【作业2】价值观作业
    Spring的零配置
    Spring容器中bean的作用域
    Spring注入方式
    Spring整合Struts2
    my first go
    Struts2对ajax的支持
  • 原文地址:https://www.cnblogs.com/kissdb/p/4009582.html
Copyright © 2011-2022 走看看