• 文件处理


    1.文件打开的四种方式:

    # f = open(r'C:UsersfengziDesktopa.txt','r',encoding='utf-8')

    如果直接这样打开文件,会因为无法判断是文件路径中的还是转义字符中的,而产生冲突,导致错误

    所以文件打开时,有以下的几种方式:

    f = open('文件的绝对路径 ','文件的执行方式(r,w,a)',encoding='文件的编码方式')

     #用什么字符编码写的,你就需要用什么字符编码读

    # f = open('C:\Users\fengzi\Desktop\a.txt','r',encoding='utf-8')

    # f = open('C:/Users/fengzi/Desktop/a.txt','r',encoding='utf-8')

    # f = open(r'C:UsersfengziDesktopa.txt','r',encoding='utf-8')

    如果使用以上的这三种方式打开文件,则在对文件操作之后,必须手动关闭,即:

    必须在最后加 f.close()

    # with open(r'C:UsersfengziDesktopa.txt','rb') as f:

      #如果是用with关键字打开文件,则不需要手动关闭

    2.文件处理的几种简单函数(了解)

    #应用程序是不能直接操作硬件的,应用程序需要通过os操作硬件

    # f = open(r'C:UsersfengziDesktopa.txt','a',encoding='utf-8')

    # f.flush()#保存

    # res = f.readable()#判断文件是否可读

    # res = f.writable()#判断文件是否可写

    # print(res)

    # f.close()

    3.文件处理的读、写方法

    #读方法

    #8位1字节,1024bytes(字节)是1kb,

    # f = open(r'C:UsersfengziDesktopa.txt','r',encoding='utf-8')

    # data = f.read(4)#4是字符不是字节

    # print(data)

    # f.close()

    # f = open(r'C:UsersfengziDesktopa.txt','r',encoding='utf-8')

    # f.read(4)#4是字符不是字节

    # data = f.read()#读取光标右边所有字符

    # print(data)

    # f.close()

    # f = open(r'C:UsersfengziDesktopa.txt','r',encoding='utf-8')

    # data = f.readline()#readline按行读取

    # print(data)

    # f.close()

    #写方法(覆盖)

    # f = open(r'C:UsersfengziDesktopa.txt','w',encoding='utf-8')

    # f.write('哈哈哈,哈哈哈')#write方法覆盖原有内容

    # f.writelines(('你','好','美','女','11'))#把列表或者元组拼接成一行字符串写入文件中

    # f.close()

    #写方法(不覆盖)

    # f = open(r'C:UsersfengziDesktopa.txt','a',encoding='utf-8')

    # f.write('哈哈哈,哈哈哈')

    # f.writelines(['s','b'])

    # # f.close()

    4.bytes类型操作文件

    # a = '你好'.encode('utf-8')#转码成utf-8类型的文件

    # print(a.decode('utf-8'))#解码

    # f = open(r'C:UsersfengziDesktopa.txt','rb')

    bytes本身就是一种文件编码的类型,所以打开时,不需要指定文件编码类型。

    rb:r表示读,b表示是bytes类型文件

    # print(f.read().decode('utf-8'))

    # f.close()

    #

    #  b'你好'不可以转化成bytes,b'abc'可以把abc字符串转化成bytes

    #  f = open(r'C:UsersfengziDesktopa.txt','wb')

    #  f.write(b'123')

    #  f.close()

    5.光标移动

    seek()函数,控制光标移动,包含三种模式(0,1,2)

    #0模式可以用在bytes类型和字符类型,1,2模式只能用在bytes类型下

    #常用汉字在utf-8当中占3个字节,生僻字占的更多

    # with open(r'C:UsersfengziDesktopa.txt','rb') as f:

    #     f.seek(0)#把光标移动到开头

    #     data = f.read()

    #     print(data)

        # f.read(1)

        # f.seek(5,1)#1代表相对位置

        # print(f.read().decode('utf-8'))

        # f.seek(-4,2)#2代表把光标移动到末尾

        # data = f.read()

        # print(data)

    seek(光标移动的方向和移动几位,模式类型)

    正数表示向右移动几位,例如seek(5,1)表示从当前位置向右移动5位

    负数表示向左移动几位,例如seek(-5,2)表示将光标从文件末尾向左移动5位

    转义字符虽然不会在文本中显示,但是依旧占用字符,所以光标移动的时候,一定要考虑到:

    例如:换行符!!

    有换行符时:

     

    没有换行符时:

     

  • 相关阅读:
    异步加载技术实现瀑布流效果
    点击向下展开的下拉菜单特效
    几个个实用的PHP代码片段【自己备份】
    cache和buffer区别探讨
    windows 文本文件放到linux下使用
    制作rpm包
    mariadb在线热备份做主从
    检查目录下备份文件的脚本
    different between method and function
    mysql忘记root密码解决
  • 原文地址:https://www.cnblogs.com/leeeel/p/10806650.html
Copyright © 2020-2023  润新知