• python基础 day8 文件操作


    文件操作

    open 是python的内置函数,open底层调用的是操作系统的接口
    f1:就是个变量,专业名词:文件句柄。一般命名f1,fh,file_handler,f_h等等,对文件进行任何操作,都要通过文件句柄。
    encoding='' 可以不写,如果不写的话,默认编码本就是操作系统的默认编码
    windows:gbk
    linux:utf-8
    mac:utf-8
    mode='' 打开方式,r只读,w写入,a追加……
    f1.close() 关闭文件句柄

    f1 = open(r'd:	empday8test1.txt', encoding='utf-8', mode='r')
    content = f1.read()
    print(content)
    f1.close()
    

    1.文件操作的读

    # 1.全部读出来
    f1 = open(r'd:	empday8test1.txt', 'r', encoding='utf-8', )
    context = f1.read()
    print(context)
    f1.close()
    
    # 2.按照字符读取
    f1 = open(r'd:	empday8test1.txt', 'r', encoding='utf-8', )
    context = f1.read(3)
    print(context)
    f1.close()
    
    # 3.按照行读取
    f1 = open(r'd:	empday8test1.txt', 'r', encoding='utf-8', )
    context = f1.readline()
    print(context)
    f1.close()
    
    # 4.多行读取  # 返回一个列表,列表中的每一个元素是源文件中的每一行
    f1 = open(r'd:	empday8test1.txt', 'r', encoding='utf-8', )
    l1 = f1.readlines()
    print(l1)
    f1.close()
    
    # 5.for循环读取(文件句柄可以遍历)
    f1 = open(r'd:	empday8test1.txt', 'r', encoding='utf-8', )
    for line in f1:
        print(line)
    
    # 6.rb 二进制读取,模式操作的是非文本的文件 图片、视频、音频等
    f2 = open(r'd:	emp	img.jfif', 'rb')
    pic = f2.read()
    print(pic)
    f2.close()
    

    2.文件操作的写

    # 如果没有这个文件,则创建这个文件
    f = open(r'd:	empday8test2.txt', 'w', encoding='utf-8')
    f.write('现在学习文件的写')
    f.close()
    
    # 如果文件存在,就先清空,再写入新内容
    f = open(r'd:	empday8test2.txt', 'w', encoding='utf-8')
    f.write('重新写一点')
    f.close()
    
    # 二进制写入
    f1 = open(r'd:	emp	img.jfif', 'rb')
    pic = f1.read()
    print(pic)
    f1.close()
    f2 = open(r'd:	emp美女.jfif', 'wb')
    f2.write(pic)
    f2.close()
    

    3.文件操作的追加

    # 没有文件先创建文件再追加
    f = open(r'd:	empday8test2.txt', 'a', encoding='utf-8')
    f.write("adfslkdjflskdjf")
    f.close()
    

    4.文件操作的读写

    # r+ 读并追加
    f = open(r'd:	empday8test2.txt', 'r+', encoding='utf-8')
    content = f.read()
    print(content)
    f.write('我好烦')
    

    5.文件操作的其他功能

    # tell()  读取光标所在的位置,单位(字节)
    f = open(r'd:	empday8test2.txt', 'r', encoding='utf-8')
    print(f.tell())
    content = f.read()
    print(f.tell())
    f.close()
    
    # seek() 调整光标的位置
    f = open(r'd:	empday8test2.txt', 'r', encoding='utf-8')
    print(f.tell())
    f.seek(9)
    print(f.tell())
    content = f.read()
    print(content)
    f.close()
    
    # flush 强制刷新
    f = open(r'd:	empday8test2.txt', 'w', encoding='utf-8')
    f.write('强制保存')
    f.flush()
    f.close()
    

    6.打开文件的其他方式

    # 不用手动关闭文件句柄
    # 可以同时打开多个文件
    with open(r'd:	empday8test1.txt', 'r', encoding='utf-8') as f1,
            open(r'd:	empday8test2.txt', 'r+', encoding='utf-8') as f2:
        print(f1.read())
        print(f2.read())
        f2.write('jason')
    

    7.修改文件的操作

    """
    1. 以读的方式打开原文件
    2. 以写的模式创建一个新文件
    3. 将原文件读取出来的内容修改为新内容,写入新文件
    4. 将原文件删除
    5. 将重命名为新文件
    """
    import os
    with open(r'D:	empday8test3.txt', 'r', encoding='utf-8') as f1,
            open(r'D:	empday8test4.txt', 'w', encoding='utf-8') as f2:
        for line in f1:
            new_line = line.replace('SB', 'NB')
            f2.write(new_line)
    os.remove(r'D:	empday8test3.txt')
    os.rename(r'D:	empday8test4.txt', r'D:	empday8test3.txt')
    
  • 相关阅读:
    关于团体项目技术选型的补充
    关于此次团队项目中技术选型问题
    习题3 怎样与用户有效地沟通以获取用户的真实需求?
    面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别在哪里?请根据自己的理解简明扼要的回答。
    你认为一些军事方面的软件系统采用什么样的开发模型比较合适?
    此次项目之用户手册
    形式化说明技术以及图书流通系统。
    此次项目的需求验证
    随着物流的发展、虚拟技术的发展,实体商场到底以什么样的形式存在(在未来)的呢?
    此次项目的过程模型选择
  • 原文地址:https://www.cnblogs.com/west-yang/p/12571989.html
Copyright © 2020-2023  润新知