• 文件处理


    '''
    文件处理
    文件处理流程:
    1.打开文件,得到文件的句柄并赋值给一个变量
    2.通过句柄对文件进行操作
    3.关闭文件
    '''
    
    # open()函数向操作系统要到句柄,然后赋值给了变量,就可以对文件进行操作;文件存在硬盘中,那么想要进行操作就需要加载到内存中;如果文件只打开不关闭,那么会浪费系统资源;
    # f = open('笑纳', encoding='utf-8') # 引号里的其实就是路径,没有带绝对路径的话,就在当前目录下寻找;open()函数会检索当前系统的编码,encoding默认编码为系统的编码,win系统是gbk,必须与文件的编码一致才可以正确打开文件并进行操作
    # data = f.read()
    # print(data)
    # f.close()
    
    
    '''
    文件打开模式
    r:只读模式【默认模式,文件必须存在,不存在则抛出异常】
    w:只写模式【不可读;不存在则创建;存在则清空内容】
    x:只写模式【不可读;不存在则创建;存在则报错】
    a:追加模式【可读;不存在则创建;存在则只追加内容】
    
    '+'表示可以同时读写某个文件
    r+:读写【可读,可写】
    w+:写读【可读,可写】
    x+:写读【可读,可写】
    a+:写读【可读,可写】
    
    'b'表示以字节的方式操作
    rb或r+b
    wb或w+b
    xb或x+b
    ab或a+b
    '''
    
    '''文件处理读操作'''
    # f = open('笑纳', 'r', encoding='utf-8') # 默认打开文件是读模式mode='rt'
    
    # read()读取文件全部内容
    # print(f.read())
    
    # readable()这个文件是否可读
    # print(f.readable())
    
    # readline()逐行读取,当文件内容读取完毕后,依旧还有函数需要执行,那么打印的是一行空白,不会报错;猜想:文件一行有换行符,print有默认换行符,所以end关键字不设置,逐行打印出来的内容就会有一行空白
    # print(f.readline(), end='')
    # print(f.readline())
    # print(f.readline())
    # print('第四行:', f.readline())
    
    # 当执行了read()函数,把文件内容全部读取完毕后(光标移到了文件末尾),再执行readline()函数,那么没有内容可打印,打印的是空白
    # print(f.read())
    # print('逐行读取:', f.readline())
    
    # readlines()把文件内容放进一个列表,每一行内容作为一个元素,并且内容包括
    换行符
    # print(f.readlines())
    # f.close()
    
    '''文件处理写操作'''
    # f = open('笑纳', 'w', encoding='utf-8')
    
    # write()写入内容,如果写入的内容不加入换行符,那么不会进行换行的操作
    # f.write('这是“w”写操作!
    ')
    # f.write('这是第二行
    这是第三行
    这是第四行
    ')
    
    # writable()是否可写入
    # print(f.writable())
    
    # writelines()用于向文件中写入一序列的字符串(或单个字符串),列表每个元素如果加入了换行符,那么算是一行的内容
    # f.writelines(['这是第五行
    ', '这是第六行不加换行符', '第六行结果是什么样呢
    ']) # 文件写入的内容只能是字符串类型
    # f.close()
    
    '''文件处理追加操作'''
    # f = open('笑纳', 'a', encoding='utf-8')
    
    #方法与写操作一样,只不过不会清空文件内容;追加到文件最后的位置
    
    # f.write('写到文件最后!1')
    # f.write('写到文件最后!2')
    # f.close()
    
    '''文件处理其它模式'''
    # 文件修改的本质其实就是覆盖;比如win系统打开一个文件是通过软件打开,软件读取文件内容到内存当中,然后可以进行修改,再把所修改的内容覆盖原文件(或新建新文件)
    # f = open('笑纳', 'r+', encoding='utf-8')
    
    # f.write('sb') # r+模式下的write(),通过光标所在位置进行修改字符串内容;默认的话是第一个字符开始往后修改,比如('123')会被改成('sb3')
    # data = f.read()
    # print(data)
    # f.close()
    
    '''修改文件内容并把修改后的内容保存到其它文件(先以'r'读的方式获取文件内容的列表赋值给一个变量,然后以'w'写的方式对列表的元素(即字符串)进行操作即可)'''
    # 代码过长,找合适位置输入一个并回车即可分行
    # with open('笑纳', 'r', encoding='utf-8') as f,
    #     open('笑纳1', 'w', encoding='utf-8') as f1:
    #  data = f.readlines()
    #  f1.writelines(data[0].replace('接', '不接'))
    while True: print('studying...')
  • 相关阅读:
    Hibernate中的Session
    角色转变中
    Hibernate主键生成策略
    Hibernate主键生成策略
    java中List集合
    java中List集合
    Mongodb的安装--简单快速
    Follow My Heart
    memcached的缺点
    为什么引入Memcached?
  • 原文地址:https://www.cnblogs.com/xuewei95/p/14441590.html
Copyright © 2020-2023  润新知