zoukankan      html  css  js  c++  java
  • 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 ------------------------

    对于一个有思想的人来说,没有地方是荒凉而遥远的
  • 相关阅读:
    C++ Compress Floder
    C语言: 两个int变量相除,结果保留两位小数
    过滤Windows文件名中的非法字符
    判断两个vector是否相等
    顶级操盘手是怎样准确把握入场时机的
    短线黑马选股绝技
    短线黑马选股绝技 一
    每日一招:短线炒股实用技巧
    高抛低吸T+0操作要领(目前行情短线炒作的必备技能)
    如何买开盘即涨停的个股
  • 原文地址:https://www.cnblogs.com/quanag/p/12644079.html
Copyright © 2011-2022 走看看