• 8,文件的操作


    绝对路径:从根目录一直找到文件。

    相对路径:从当前文件夹找到文件。

    在文件操作中,凡是mode = 带b的,可以不用写encoding

    f1 = open():默认需要手动关系文件句柄

    f1.close

    f1 = open('护士学生空姐班主任.txt',encoding='utf-8',mode='r')
    count = f1.read() #用read打开很容易让内存瞬间崩溃,小容量的文件可以用read
    print(count)
    f1.close() # 必须手动关闭内存空间。

    在python中打不开文件的错误原因。

    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbf in position 0: invalid start byte
    编码错误:文件存储时编码方式与文件打开时的编码方式不一致。

    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbf
    in position 0: invalid start byte

    打不开文件可以用两种方法。

    第一种: 加r

    f1 = open(r'D:1张11.txt',encoding='gbk',mode='r')
    print(f1.read())
    f1.close()

    第二种:加

    f1 = open('d:\1张11.txt',encoding='gbk',mode='r')
    print(f1.read())#用read打开很容易让内存瞬间崩溃,小容量的文件可以用read

    f1.close()

    文件操作有哪些?

    r 读模式

    read

    f1 = open('张11',encoding='utf-8')#默认只读,可以不用谢mode = ‘r’
    print(f1.read())#
    f1.close()
    print(f1)

    read()

    f1 = open('张11',encoding='utf-8')
    print(f1.read(2))#从1开始,找到最后。
    f1.close()

    readline()

    f1 = open('张11',encoding='utf-8')
    print(f1.readline())
    print(f1.readline())#按行读取,每读取一行,就复制一行。
    print(f1.readline())
    f1.close()

    readlines()

    f1 = open('张11',encoding='utf-8')
    print(f1.readlines())#将每一行的到最后,添加一个str的换行符,将这几行内容,以列表的形式,返回出来。
    f1.close()

    for循环去查

    f1 = open('张11',encoding='utf-8')
    for i in f1:#循环去查
        print(i)
    f1.close()

     rb模式:

    非文字的文件的读取写入。

    f1 = open('11.jpg', mode='rb')  #在别的路径打开一个文件,rb模式,默认是bytes类型
    count = f1.read() # 把f1都出来的内容赋值给count
    print(count)
    f1.close() #关闭文件
    f2 = open('235.jpg',mode='wb')#在新建一个235的空白文件
    f2.write(count)#将count内容,写入f2.

    r+模式 r(直读)(+)在添加个写的功能

    先读后写。

    f1 = open('张11',encoding='utf-8',mode='r+')
    print(f1.read())
    f1.write('666')#在末行添加一行666
    print(f1)
    f1.close()

    r+b模式: 读写,先读后写。

    f1 = open('张11',mode='r+b')
    print(f1.read())
    f1.write('6667555'.encode('utf-8'))
    f1.close()

    w wb模式:

    w:没有文件,创建文件写内容。

    w:如果有文件,清空原文件,写入新内容。

    f1 = open('张三',encoding='utf-8',mode='w')
    print(f1.write('777'))
    f1.close

    wb:覆盖添加

    f1 = open('张三',mode='wb')
    f1.write('s'.encode('utf-8')) #覆盖添加
    f1.close()

    w+:先写后读

    1 = open('log1d',encoding='utf-8',mode='w+')
    f1.write('fff')
    f1.seek(0)#将光标移动到0的位置
    print(f1.read())
    f1.close()

    w+b

    a ab

    a:没有文件,创建文件写内容

    f1 = open('asd',encoding='utf-8',mode='a')
    f1.write('qqq')
    f1.close()

    a+:有文件,直接在源文件后面追加新内容

     没有文件,创建文件写内容,默认追加到最后。

    f1 = open('5',encoding='utf-8',mode='a+')
    f1.write('5222')
    f1.close()

     ab : 默认添加到最后

    f1 = open('logr',mode='ab')
    f1.write('中国'.encode('utf-8'))
    # print(count)
    f1.close()

    readlable()判断文件是否可读

    writable()判断文件是否可写

    f1 = open('log1',encoding='utf-8',mode='r')
    print(f1.readable())
    print(f1.writable())

    seek : 按照字节去调整光标

    seek(0,2)

    f1 = open('张三',encoding='utf-8')
    print(f1.seek(3))
    print(f1.read())

    tell

    f1 = open('张三',encoding='utf-8')
    print(f1.tell())
    print(f1.read())
    print(f1.tell())

    truncate 对原文件进行截取内容,以字节形式,只能在a模式下使用。

    f1 = open('张三',encoding='gbk',mode='a')
    f1.truncate(2)
    print(f1)
  • 相关阅读:
    angular入门学习文档之一
    将SDL程序变成网页(使用emscripten)
    Nim使用OpenGL
    C++移动操作,RVO和NRVO
    从零开始制作一个粒子系统
    cocos2d-x学习之路(一)——安装cocos2d-x
    堆排序
    开发zeroc ice应用入门(java开发ice应用,python开发ice应用,java与python结合开发ice服务)
    eclipse自动提示设置以及问题:去除变量自动提示(图文详解)
    ubuntu安装新版QQ
  • 原文地址:https://www.cnblogs.com/ZJGG/p/9008954.html
Copyright © 2020-2023  润新知