zoukankan      html  css  js  c++  java
  • Python 文件和内建函数 open(),file()

    如何打开文件

    handle = open(file_name,access_mode = 'r')

    r 以读方式打开(文件不存在则报错,未提供access_mode默认值)
    w 以写方式打开(文件存在则清空,不存在则创建)
    a 以追加模式打开(必要时创建新文件)
    r+ 以读写模式打开(参见r)
    w+ 以读写模式打开(参见w)
    a+ 以读写模式打开(参见a)
     
    >>> f = open('/etc/hosts')
    >>> data = f.read()
    >>> data
    '127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    '
    >>> f.close()
    >>> f = open('/etc/hosts')
    >>> data = f.readline()
    >>> data
    '127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    '
    >>> data
    '127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    '
    >>> f.readlines()
    ['::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    ']
    >>> f.readlines()
    []
    >>> f.close()
    >>> f = open('/etc/passwd')
    >>> f.read(10)
    'root:x:0:0'
    >>> f.readline()
    ':root:/root:/bin/bash
    '
    >>> f.readlines()
    ['bin:x:1:1:bin:/bin:/sbin/nologin
    ', 'daemon:x:2:2:daemon:/sbin:/sbin/nologin
    ', 'adm:x:3:4:adm:/var/adm:/sbin/nologin
    ', 'lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    ', 'sync:x:5:0:sync:/sbin:/bin/sync
    ', 'shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    ', 'halt:x:7:0:halt:/sbin:/sbin/halt
    ', 'mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    ', 'uucp:x:10:14:uucp:/var/spool/uucp:
    .....
    .....
    ..

    文件迭代

    如果需要逐行处理文件,可以结合for循环迭代文件,迭代文件的方法与处理其他序列类型的数据类似
    >>> f = open('/etc/passwd')
    >>> for line in f:
    ...     print line
    ... 
    root:x:0:0:root:/root:/bin/bash
    
    bin:x:1:1:bin:/bin:/sbin/nologin
    
    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    write方法

    write()内建方法功能与read()和readline()相反,它把含有文本数据或二进制数据块的字符串写入到文件中去
    写入文件时,不会自动添加行结束标志,需要程序员手工输入,添加行结束标志
    >>> f = open('hi.txt','w')
    >>> f.read()
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IOError: File not open for reading
    >>> f.write(30)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: expected a string or other character buffer object
    >>> f.write('hello world')
    [root@localhost ~]# cat hi.txt 
    [root@localhost ~]# 
    >>> f.flush()
    [root@localhost ~]# cat hi.txt 
    hello world[root@localhost ~]#
    >>> f.write('
    ')
    >>> f.flush()
    [root@localhost ~]# cat hi.txt 
    hello world

    追加a的方式打开

    >>> f = open('hi.txt','a')
    >>> f.write('new line
    ')
    >>> f.close
    <built-in method close of file object at 0x7f551f33f540>
    >>> f.close()
    
    [root@localhost ~]# cat hi.txt 
    hello world
    new line
     
  • 相关阅读:
    论文摘记 2017.4.6-4.9
    P4 PI库安装
    Markdown中的表格
    Easy install ryu
    《重构网络-SDN架构与实现》阅读随笔
    解决Github Desktop Repo publish 失败问题
    解决 "OperationalError: (sqlite3.OperationalError) no such table: ..."问题
    初始化 Flask 虚拟环境 命令
    Flask: socket.error: [Errno 48] Address already in use 问题
    【转】TCP端口号记录
  • 原文地址:https://www.cnblogs.com/weiwenbo/p/6558428.html
Copyright © 2011-2022 走看看