zoukankan      html  css  js  c++  java
  • 读取文件内容——open函数

    参考:https://docs.python.org/3/library/functions.html?highlight=open#open

    python中读写文件有2种方式:open函数和file类,其中open函数本身就是调用的file类, 对于常规操作,官方推荐使用open函数替代file类。 #------------------------------------------------------------------------------- open函数同时支持读写文件操作,使用不同的标识,表示不同的读写模式: x 写模式,新建一个文件,如果该文件已存在则会报错。 r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。 也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 b 二进制模式。 + 打开一个文件进行更新(可读可写)。同时支持读写模式。

    ---------------------------------------------------------------------------------------------------------------------------------------------------

    open(filemode='r'buffering=-1encoding=Noneerrors=Nonenewline=Noneclosefd=Trueopener=None)

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------






    一、read([size])方法 read([size])方法从文件当前位置起读取size个字节,若无参数size,则表示读取至文件结束为止,它范围为字符串对象; read()直接读取字节到字符串中,包括了换行符;
    f = open('C:\\Users\\del\\Desktop\\新建文本文档5.txt')
    
    s = f.read()
    f.close()
    
    
    print(type(s))
    print(s)

    执行结果:

    <class 'str'>
    111111111
    中国
    22222
    美国
    33333

    55555555
    俄罗斯
    6666666

    ====================================================================================================================

    二、readline()方法
    
    从字面意思可以看出,该方法每次读出一行内容,所以,读取时占用内存小,比较适合大文件,该方法返回一个字符串对象。
    
    
    readline()  读取整行,包括行结束符,并作为字符串返回
    f = open('C:\\Users\\del\\Desktop\\新建文本文档5.txt')
    
    s = f.readline()
    f.close()
    
    
    print(type(s))
    print(s)

    执行结果:

    <class 'str'>
    111111111

    ===============================================================================================

    三、readlines()方法
    
    读取整个文件所有行,保存在一个列表(list)变量中,每行作为一个元素,但读取大文件会比较占内存
    
    
    特点:一次性读取整个文件;自动将文件内容分析成一个行的列表。
    
    
    readlines()读取所有行然后把它们作为一个字符串列表返回。
    f = open('C:\\Users\\del\\Desktop\\新建文本文档5.txt')
    
    s = f.readlines()
    f.close()
    
    
    print(type(s))
    print(s)

    执行结果:

    <class 'list'>
    ['111111111\n', '中国\n', '22222\n', '美国\n', '33333\n', '\n', '55555555\n', '俄罗斯\n', '6666666\n']

    ===========================================================================================================

    切片操作:

    f = open('C:\\Users\\del\\Desktop\\新建文本文档5.txt')
    
    s = f.readlines()
    f.close()
    
    
    print(type(s))
    print(s)
    
    for line in s:
        print(line[:-1])                        #<class 'str'>

    执行结果:

    <class 'list'>
    ['111111111\n', '中国\n', '22222\n', '美国\n', '33333\n', '\n', '55555555\n', '俄罗斯\n', '6666666\n']
    111111111
    中国
    22222
    美国
    33333

    55555555
    俄罗斯
    6666666

    =================================================================================

    切片,并存入列表中

    f = open('C:\\Users\\del\\Desktop\\新建文本文档5.txt')
    
    s = f.readlines()
    f.close()
    
    
    print(type(s))
    print(s)
    
    users = []
    
    for line in s:
        print(line[:-1])  #<class 'str'>
        users.append(line[:-1])
    
    print(users)
    
    print(users[0])
    print(users[1])
    print(users[2])
    print(users[5])
    print(type(users[5]))
    print(len(users[5]))
    if users[5] == '':
        print('')

    执行结果:

    <class 'list'>
    ['111111111\n', '中国\n', '22222\n', '美国\n', '33333\n', '\n', '55555555\n', '俄罗斯\n', '6666666\n']
    111111111
    中国
    22222
    美国
    33333

    55555555
    俄罗斯
    6666666
    ['111111111', '中国', '22222', '美国', '33333', '', '55555555', '俄罗斯', '6666666']
    111111111
    中国
    22222

    <class 'str'>
    0

  • 相关阅读:
    Speech Recognize 实用类 (发现bug的朋友,请留言如何修正,供他人参考)
    由“类的成员函数”充当“回调函数”引发的问题的思考和解决方案
    装载与软件体系结构
    artoolkit video 数据转换到 IplImage*
    CvCamShift算法+原理(转)
    基于SAPI的中文语音识别的xml书写与编程
    自己根据示例代码改写的可以用于TexttoSpeech的类库
    Linux下安装erlang及rabbitmq
    jaf activation
    基于DotNetOpenAuth实现OpenID 服务提供者<shou>
  • 原文地址:https://www.cnblogs.com/xiaobaibailongma/p/12375515.html
Copyright © 2011-2022 走看看