zoukankan      html  css  js  c++  java
  • 文件读写

    # 文件操作
    # 1、打开文件,得到文件句柄并赋值给一下变量
    # 2、通过句柄对文件进行操作
    # 3、关闭文件
    
    # 文件的读操作
    f = open('test.txt', 'r', encoding='utf-8')  # 文件打开的模式 r(只读),默认为只读
    
    # read() 读取所有的文件内容,读取完后,光标到文件末尾
    data = f.read()
    
    # readable() 代表文件是否可读
    print(f.readable())
    
    # readline() 读取一行,光标到下一行
    print(f.readline(), end='')
    print(f.readline(), end='')
    print(f.readline(), end='')
    print(f.readline(), end='')
    
    
    # readlines() 把文件每行内容都读取出来放在一个列表中
    print(f.readlines())
    f.close()
    
    # 文件的写操作
    f = open('test1.txt', 'w', encoding='utf-8')  # w(只写),如果文件存在,清空文件内容,如果文件不存在创建空文件
    
    # writable() 代表文件是否可写
    print(f.writable())
    
    # write() 写入文件,如需要换行需要自己添加
    
    f.write('1111111111111
    ')
    f.write('2222222222222
    ')
    
    # writelines() 使用列表进行多行写入
    f.writelines(['1111
    ', '2222
    '])
    f.close()
    
    # 文件的追加操作
    f = open('test2.txt', 'a', encoding='utf-8')  # a(追加) 可读,文件不存在则创建,存在则只追加内容
    f.write('111
    ')
    f.close()
    
    
    # 其它文件的模式
    # w 只写模式 不可读,不存在则创建,存在则报错
    # r+ 读写:可读可写
    # w+ 写读:可读可写
    # x+ 写读:可读可写
    # a+ 写读:可读可写
    
    # b 表示以字节的方式操作,不能使用encode参数
    # rb 或 r+b
    # wb 或 w+b
    # xb 或 x+b
    # ab 或 a+b
    
    f = open('test.txt', 'rb')
    data = f.read()
    print(data.decode('utf-8'))  # 想要查看读取的内容,必须使用decode进行转换为utf-8
    f.close()
    
    f = open('test.txt', 'wb')
    data = bytes('hello world', encoding='utf-8')  # 必须把要写入的内容转换为2进制
    f.write(data)
    f.close()
    
    # closed 判断文件是否被关闭
    print(f.closed)
    
    # 将文件在内存中的数据即时保存在硬盘中
    f.flush()
    
    # 一个回车在windows系统中代表
    ,在linux系统中代表
    
    # python会自动将
    转换为
    ,可以使用newline=''来取消它的自动转换
    f = open('test.txt', 'r', encoding='utf-8', newline='')
    
    # 显示文件文
    print(f.name)
    
    # 显示当前光标所在的位置
    print(f.tell())
    
    # seek() 用来控制光标的移动
    f.seek(0)  # 只要不是read方法(按字符),其余的移动都是按字节
    f.seek(10, 0|1|2)  # 三种模式,0表示从文件开头,1表示相对于光标上次的位置,2表示从文件未尾向前,前一个参数必须为负数。
    # 使用1,2这两个模式时,文件模式必须为b模式
    
    # truncate() 文件截取
    f.truncate(10)  # 要使用r+或a+(不能使用w,或w+,因为w与w+会清空文件),保留开始到10个字节,其它都删除
  • 相关阅读:
    「CH2401」送礼物 解题报告
    IO流总结
    关于Servlet中GET和POST方法的总结
    关于Java-枚举的总结
    JVM原理
    Form表单中method="post/get'的区别
    基于Servlet+JSP+JavaBean开发模式的用户登录注册
    浅谈jsp和servlet的区别
    serialVersionUID作用
    oracle的oci和thin区别
  • 原文地址:https://www.cnblogs.com/dangrui0725/p/9420771.html
Copyright © 2011-2022 走看看