zoukankan      html  css  js  c++  java
  • Python----文件操作

    #文件操作:
    # 路径:绝对路径:从根目录开始一直找到文件。
    # 相对路径:从当前目录开始找到的文件。
    # r , w , a ,
    # 读模式:
    # *r
    # read
    # read(n)
    # readline()
    # readline()
    # for循环 最好的
    # rb
    # *r+
    # r+b
    # 写模式:
    # *w
    # w:没有文件, 创建文件写内容:
    # w:如果有文件,清空原文件,写入新内容.
    # wb
    # w+
    # w+b
    # 追加模式
    # *a
    # a:没有文件,创建文件写内容
    # a:如果有文件, 在最后面追加新内容:
    # ab
    # a+
    # a+b
    # 补充:
    # gbk utf_8
    # 对于字母,数字,特殊字符的编码都是引用asscii码,所以可以直接转化.
    # s1='123abc*'
    # b1=s1.encode('utf_8')
    # s2=b1.decode('gbk')
    # print(s2)
    # f1=open('d:护士空姐学生少妇联系方式.txt',encoding='utf-8',mode='r')
    # print(f1.read())
    # f1.close()
    '''
    变量:f1_obj ,f1_file ,file ,file_handle...文件句柄.
    open Python的内置函数,但是底层调用的Windows系统的open功能,
    open功能就是操作文件用的.
    windows系统默认的编码方式gbk ,linux ,macos:utf-8
    流程:1.打开文件,产生文件句柄.
    2.对文件句柄进行相应的操作.
    3.关闭文件
    '''
    # f2=open('护士学生空姐班主任.txt',encoding='utf-8')
    # print(f2.read())
    # f2.close()

    # r rb
    # 1, f.read()全部读出来:
    # f2=open('护士学生空姐少妇班主任.txt',encoding='utf-8')
    # print(f2.read())
    # f2.close()

    # 2 f.read(n)

    # f1=open('护士学生空姐少妇班主任.txt',encoding='utf-8')
    # print(f1.read(3))
    # f1.close()
    # r模式:read(n) n 是按照字符读取.
    # rb模式:read(n) n 是按照字节读取.

    #readline ()按行读取
    # f1=open('护士学生空姐班主任.txt',encoding='utf-8')
    # print(f1.readline())
    # print(f1.readline())
    # print(f1.readline())
    # print(f1.readline())
    # f1.close()

    # readlines() 返回一个list,里面的元素是每一行.
    # f1=open('护士学生空姐班主任.txt',encoding='utf-8')
    # print(f1.readlines())
    # for line in f1.readlines():
    # print(line)
    # f1.close()

    #for 循环去读取.
    # f1=open('护士学生空姐班主任.txt',encoding='utf-8')
    # for line in f1: #一行一行循环打印
    # print(line)
    # f1.close()

    #rb 模式 非文字类的文件
    # f1=open('护士学生空姐班主任.txt',mode='rb')
    # print(f1.read(3)) #:按照字节读取的
    # f1.close()

    #r+ 读写,先读后写

    # f1=open('护士学生空姐班主任.txt',encoding='utf-8',mode='r+')
    # print(f1.read())
    # f1.write('666')
    # f1.close()

    #r+b 读写,先读后写
    # f1=open('护士学生空姐班主任.txt',mode='r+b')
    # print(f1.read())
    # f1.write('666'.encode('utf-8'))
    # f1.close()

    # w wb 模式
    # w:没有文件,创建文件写内容.
    # w:如果有文件,清空原文件,写入新内容.
    # f1=open('log5',encoding='utf-8',mode='w')
    # f1.write('老男孩是最好的培训学校...')
    # f1.close()

    # f1=open('log1',encoding='utf-8',mode='w')
    # f1.write('法国进口分类结果')
    # f1.close()

    #wb #b代表batys类型
    # f1=open('log2',mode='wb')
    # f1.write('你好伟大的祖国'.encode('utf-8'))
    # f1.close()

    #w+ 先写后读
    # f1=open('log1',encoding='utf-8',mode='w+')
    # f1.write('老老男孩......ha哈哈哈')
    # f1.seek(0) #调整光标
    # print(f1.read())
    # f1.close()

    #w+b
    #a ab
    #a:没有文件,创建文件写内容.
    #a+:有文件,直接在原文件的后面追加新内容.

    # f1=open('log3',encoding='utf-8',mode='a')
    # f1.write('barry')
    # f1.close()

    #a+ 追加可读
    # f1=open('log3',encoding='utf-8',mode='a+')
    # f1.write('建设大街机会多吃口饭')
    # f1.seek(0)
    # print(f1.read())
    # f1.close()


    # f1=open('log3',mode='ab')
    # f1.write('中国'.encode('gbk'))
    # f1.close()


    #ps 非文字的文件的读取写入
    # f1=open('l1.jpg',mode='rb')
    # co.close()
    # f2=openntent=f1.read()
    # print(content)
    # f1('小猪佩奇.jpg',mode='wb')
    # f2.write(content)

    #read write read(n) readline() readlines() seed
    # readlable() writeable()判断是否可读或者可写
    # f1=open('log1',encoding='utf-8')
    # print(f1.writable())
    # f1=open('log1',encoding='utf-8',mode='r+')
    # print(f1.readable())
    # print(f1.writable())

    # seek: 按照字节去调整光标
    # f1=open('log1',encoding='utf-8')
    # f1.seek(3)
    # print(f1.read())
    # f1.close()
    # tell 告诉光标的位置
    # f1=open('log1',encoding='utf-8')
    # print(f1.tell())
    # print(f1.read())
    # print(f1.tell())
    # f1.close()
    #truncate 对原文件进行截取内容,以字节形式,只能在a模式下使用。
    # f1=open('log1',encoding='utf-8',mode='a')
    # f1.truncate(2)
    # f1.close()

    #文件操作的另一种写法
    # with open() as 不用主动关闭 f1.close()
    # 同一open 可以操作多个文件
    # with open('log1',encoding='utf-8')as f1:
    # print(f1.read())
    # with open('log1',encoding='utf-8')as f1,
    # open('log2',encoding='utf-8',mode='w')as f2:
    # print(f1.read())
    # f2.write('666')
    # with open('log1',encoding='utf-8')as f1:
    # content=f1.read()
    # f1.close()
    # pass
    # with open('log1',encoding='utf-8',mode='w')as f2:
    # f2.write('333')

    #文件对的改

    '''
    1,打开原文件 old_file,将原内容读取到内存。
    2,创建一个新文件new_file。
    3,将原内容通过你改写形成新内容,写入到新文件。
    4,将原文件删除。
    5,将新文件重命名成原文件。
    '''
    #方法一,原文件内容不大,可以用此方法,但是此方法还是很low。
    import os
    with open('change',encoding='utf-8')as f1,
    open('change.bak',encoding='utf-8',mode='w')as f2:
    old_content=f1.read()
    new_content=old_content.replace('alex','SB')
    f2.write(new_content)
    os.remove('change')
    os.renames('change.bak','change')

    #方法二2
    import os
    with open('change',encoding='utf-8')as f1,
    open('change.bak',encoding='utf-8',mode='w') as f2:
    for lion in f1:
    new_line=lion.replace('SB','alex')
    f2.write(new_line)
    os.remove('change')
    os.rename('change.bak','change')


































  • 相关阅读:
    BZOJ 1444 有趣的游戏(AC自动机+矩阵快速幂)
    BZOJ 1190 梦幻岛宝珠(分组01背包)
    BZOJ 1562 变换序列(二分图匹配)
    BZOJ 1483 梦幻布丁(链表+启发式合并)
    BZOJ 1222 产品加工(DP)
    java GUI编程一
    java 网络编程
    java 异常
    java 线程二
    java 线程一
  • 原文地址:https://www.cnblogs.com/weilaixiaochaoren/p/9014498.html
Copyright © 2011-2022 走看看