• Python教程:文件和读写的详细教程


    文件操作的模式

    文件操作的模式如下表:
    在这里插入图片描述

    1. open 打开文件

    使用 open 打开文件后一定要记得调用文件对象的 close() 方法。比如可以用 try/finally 语句来确保最后能关闭文件。

    file_object = open(r'D:\test.txt') # 打开文件 
    try:
         all_the_text = file_object.read( ) # 读文件的全部内容
    finally:
         file_object.close( ) # 关闭文件
    
    print(all_the_text)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    注:不能把 open 语句放在 try 块里,因为当打开文件出现异常时,文件对象 file_object 无法执行 close() 方法。

    2. 读文件

    读文本文件方式打开文件

    file_object = open(r'D:\test.txt', 'r') # 打开文件
    #第二个参数默认为 r
    file_object = open(r'D:\test.txt') # 打开文件
    
    • 1
    • 2
    • 3

    读二进制文件方式打开文件

    file_object= open(r'D:\test.txt', 'rb') # 打开文件
    
    • 1

    读取所有内容

    file_object = open(r'D:\test.txt') # 打开文件
    try:
         all_the_text = file_object.read( )# 读文件的全部内容
    finally:
         file_object.close( ) # 关闭文件
    print(all_the_text)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    读固定字节

    file_object = open(r'D:\test.txt', 'rb') # 打开文件
    try:
        while True:
             chunk = file_object.read(100) # 读文件的100字节
             if not chunk:
                break
             #do_something_with(chunk)
    finally:
         file_object.close( ) # 关闭文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    读每行 readlines

    file_object = open(r'D:\test.txt', 'r')  # 打开文件
    list_of_all_the_lines = file_object.readlines( ) #读取全部行
    print(list_of_all_the_lines) 
    file_object.close( ) # 关闭文件
    
    • 1
    • 2
    • 3
    • 4

    如果文件是文本文件,还可以直接遍历文件对象获取每行:

    file_object = open(r'D:\test.txt', 'r') # 打开文件
    
    for line in file_object:
        print(line)
    
    file_object.close( ) # 关闭文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3. 写文件

    写文本文件方式打开文件

    file_object= open('data', 'w')
    
    • 1

    写二进制文件方式打开文件

    file_object= open('data', 'wb')
    
    • 1

    追加写文件方式打开文件

    file_object= open('data', 'w+')
    
    • 1

    写数据

    '''
    学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    all_the_text="aaa\nbbb\nccc\n"
    file_object = open(r'D:\thefile.txt', 'w') # 打开文件
    file_object.write(all_the_text) #写入数据
    file_object.close( ) # 关闭文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    写入多行

    all_the_text="aaa\nbbb\nccc\n"
    file_object = open(r'D:\thefile.txt', 'w')# 打开文件
    file_object.writelines(all_the_text) #写入数据
    file_object.close( ) # 关闭文件
    
    • 1
    • 2
    • 3
    • 4

    追加

    file = r'D:\thefile.txt'
    with open(file, 'a+') as f: # 打开文件
         f.write('aaaaaaaaaa\n')  
    
    • 1
    • 2
    • 3

    判断文件是否存在:

    import os.path
    if os.path.isfile("D:\\test.txt"): # 判断文件是否存在
        print(":\\test.txt exists")
    
    import os
    os.getcwd()  # 获得当前目录
    os.chdir("D:\\test.txt") # 改变当前目录
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    基于 Jenkins 搭建一套 CI/CD 系统
    分布式事务-TCC案例分析流程图
    小项目----音乐在线播放器
    分享互联网2021年最新Java面试题汇总整理-附详细答案解析
    FastJson竟然会导致内存泄露?你遇到过吗?
    MySQL进阶实战5,为什么查询速度会慢
    Vue/Nuxt框架开发的PC端网站兼容平板设备的
    【ElasticSearch】学习使用DSL和RestClient编写查询语句
    八股文之springcloud
    quartz框架(六)-ThreadPool
  • 原文地址:https://blog.csdn.net/qdPython/article/details/126544963