Python文件读写

发布时间:2019-07-01 12:11:13编辑:auto阅读(1119)

    python文件读写


    读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。

    • 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。

    #文件操作,创建文件对象,通过open()函数创建文件对象
    mode:代表文件要执行的操作的类型
    r:读模式
    w:写模式(每次写入文件之前都会先将文件中的内容清空,之后重新写入)
    a:添加模式(每次写入文件时,不会清空文件内容)

    import time;
    #encoding=utf-8 文件操作的字符编码
    file=open('hiahia','r',encoding='utf-8');
    #只能做读操作 read方法是读取文件中所有的内容 (不适用)
    print('文件中的内容有:%s'%file.read());
    #readline 读取一行的内容 (适用)
    print('文件中的第一行的内容为:%s'%file.readline())
    #readlines读取一行的内容,会将文件中每一行的内容生成为列表中的一个元素 (不适用)
    lists=file.readlines();
    for line in lists:
        print("行内容为:%s"%line)
    #在操作完队友的文件对象时,一定要关闭文件对象
    file.close();#写入模式的时候,没有执行close方法,内容不会持久化保存到文件中
    #如果不写close,默认解释器自动帮你关闭文件,但是将损耗更多的解释器性能

    #写模式(w):写入内容,会将文件的原始内容清空

    file1=open('hiahia','w',encoding='utf-8');

    #写入的方法

    file1.write('hiahia is hiahia')
    time.sleep(10)#python为单线程工作,休眠当前线程,延缓程序执行close方法
    file1.close();#在python程序中,如果用户没有手动去close文件对象,那么python会在底层,自动帮你close
    print('休眠已结束!')

    #添加模式(a):写入内容,不会修改文件的原内容

    file2=open('hiahia','a',encoding='utf-8')
    file2.write("\n山间的风");
    file2.close();

    #困扰:每次在创建完file对象的时候 都要调用close关闭
    #with语句会在末尾自动关闭文件对象

    with open('HelloWorld','r',encoding='utf-8') as file:
        print(file.read())

    #这时无需关闭 文件对象了!

    #r+(读写模式) w+(写读模式) a+(追加读模式)

    #读写模式:既能写,又能读。以读为主,以写为辅

    with open('hiahia','r+',encoding='utf-8') as file:
        print(file.read())#读取文件内容
        file.write('hehe')#写读模式会将写入的内容放置在文件内容的末尾处#从文件的开头覆盖文件的原始内容

    #写读模式:可读可写,清空文件后写入

    with open('hiahia','w+',encoding='utf-8') as file:
        file.write('hello python!')
        file.write('\nhello python!')
        #seek方法的作用是移动文件的句柄0代表句柄中的起始位置
        file.seek(0)
        print(file.read())

    #追加读模式:最合适的既能写又能读的模式,追加在文件的末尾处

    with open('hiahia','a+',encoding='utf-8') as file:
        file.write('hiahiahiahiahia');
        file.seek(0)
        #tell查询当前文件句柄的值number
        print(file.read())

    文件操作的方法


    #tell:获取当前文件指针的位置(在传输发生异常的时候 记录 当前文件指针的位置)
    #seek:设置当前文件指针(开始续传的时候 seek重新定位文件(tell)) 断点续传:在两台主机传输文件的过程中 如果有一台主机发生了故障 那么 文件会终止传输 那么在程序回复正常的时候 再次传输文件
    #是否需要将文件重新传输 500MB文件
    #turncate:截断文件 清空文件中的内容

    with open('hiahia','r',encoding='utf-8') as file:
        print('文件的默认位置:%s'%file.tell())
        print(file.read(10))#读取文件内容
        print('现在指针的位置:%s'%file.tell())
        file.seek(0)
        print(file.read())

    #turncate方法的作用 在写模式 或读写模式下

    with open('HelloWorld','r+',encoding='utf-8') as file:
        file.truncate();

关键字

上一篇: Python中使用Redis

下一篇: python学习(11)