• python基础(四)


    文件操作

    1、接触文件操作

    f1 = open("d:\test.txt",mode='r',encoding='utf-8')
    content = f1.read()
    print(content)        
    f1.close()
    
    '''
    open        内置函数
    mode        以什么方式打开
    encoding    指定打开的编码
    f1          文件句柄
    f1.close()  关闭文件,释放内存
    
    文件操作三部曲:
    1.打开文件
    2.操作文件句柄
    3.关闭文件句柄

    错误原因:
    1.UnicodeDecodeError encoding编码的问题
    2. OSError: [Errno 22] Invalid argument: 'd: est.txt'
    解决方式:1.单斜杠换成双斜杠
    2.在文件路径前面加上r '''

    2、文件的读取  r  rb  r+ r+b

    # 文件的读取
    # read 读取文件里面的所有内容
    # f1 = open('read',mode='r',encoding='utf-8')
    # content = f1.read()
    # print(content)
    # f1.close()
    '''
    答案:
    大发了大量疯狂开发的建设
    范德萨快疯了达萨罗
    fdsajlkfd
    放大了防静电卡司法局
    '''
    
    # read(n)   读n个字符
    # f1 = open('read',mode='r',encoding='utf-8')
    # content = f1.read(8)
    # print(content)
    # f1.close()
    
    '''
    答案:
    大发了大量疯狂开
    '''
    
    # readline   每次读取一行
    # f1 = open('read',mode='r',encoding='utf-8')
    # content = f1.readline()
    # content1 = f1.readline()
    # print(content)
    # print(content1)
    # f1.close()
    
    '''
    答案:
    大发了大量疯狂开发的建设
    
    范德萨快疯了达萨罗
    
    '''
    # readlines()   # 把文件里面所有的行放到一个列表中
    # f1 = open('read',mode='r',encoding='utf-8')
    # content = f1.readlines()
    # print(content)
    # f1.close()
    '''
    答案:
    ['大发了大量疯狂开发的建设
    ', '范德萨快疯了达萨罗
    ', 'fdsajlkfd
    ', '放大了防静电卡司法局']
    '''
    
    # for循环  推荐使用这种,节省内存
    f1 = open('read',mode='r',encoding='utf-8')
    for line in f1:
        print(line)
    f1.close()
    '''
    答案:
    大发了大量疯狂开发的建设
    
    范德萨快疯了达萨罗
    
    fdsajlkfd
    
    放大了防静电卡司法局
    
    '''

    # rb  用来读取非文本文件,不需要指定编码
    f1 = open('taiger.jpg',mode='rb')
    content = f1.read()
    print(content)
    f1.close()

    # r+   先读取后写入在最后
    f1 = open('read',mode='r+',encoding='utf-8')
    content = f1.read()
    f1.write("这是新加的内容")
    f1.close()

    image

    3、文件的写入   w   wb   w+  w+b

    # w   文件不存在就创建文件,文件存在的话就清空文件内容,添加写入的内容

    f1 = open('write',mode='w',encoding='utf-8')
    f1.write('这是新的一个文件')
    f1.close()

    答案:

    image

    f1 = open('write',mode= 'w',encoding='utf-8')
    f1.write('现在这个文件存在的情况下写入的....')
    f1.close()

    答案:

    image

    # wb 对非文本文件的写入

    f1 = open('taiger.jpg',mode='rb')
    content = f1.read()
    f1.close()
    
    f2 = open('taiger1.jpg',mode='wb')
    f2.write(content)
    f2.close()

    执行上面代码前:

    image

    执行代码后:

    image

    4、文件的追加   a  ab a+  a+b

    # a 在文件的末尾追加写入的内容

    f1 = open('additional','a',encoding='utf-8')
    f1.write('这是追加的内容')
    f1.close()

    执行之前:

    image

    执行之后:

    image

    5、tell

    # tell告诉你文件有多少字节

    f1 = open('read','r+',encoding='utf-8')
    content = f1.read()
    print(f1.tell())                  # 129
    f1.close()


    6、seek

    # seek是移动光标的位置

    # a1.txt的内容如下
    # 每天坚持一点,
    # 每天努力一点
    # 每天多思考一点
    # 慢慢你会发现
    # 你的进步越来越大。

    f1 = open('a1.txt',mode='a+',encoding='utf-8')
    f1.write('你的路也会越走越宽!!!')
    #  如果此时去读取的话,光标在文件的末尾,读取是没有内容的,此时就要用到seek,比如我在seek里面的参数为12的话,就的从第12个字节开始
    # 此处要注意,是字节,比如:utf8编码中,一个中文是3个字节,所以要在3的倍数处进行seek
    f1.seek(12)
    content = f1.read()
    print(content)
    f1.close()

    答案:

    一点,
    每天努力一点
    每天多思考一点
    慢慢你会发现
    你的进步越来越大。你的路也会越走越宽!!!

    7、flush

    # 强制刷新




    ------------   end ------------------------

    对于一个有思想的人来说,没有地方是荒凉而遥远的
  • 相关阅读:
    P3015 [USACO11FEB]最好的括号Best Parenthesis
    P1944 最长括号匹配_NOI导刊2009提高(1)
    P2328 [SCOI2005]超级格雷码
    P2308 添加括号
    P5657 格雷码【民间数据】
    P2196 挖地雷
    P5020 货币系统
    括号序列模型--序列dp--U86873 小Y的精灵国机房之旅
    P1033 自由落体
    P1017 进制转换
  • 原文地址:https://www.cnblogs.com/quanag/p/12644079.html
Copyright © 2020-2023  润新知