• 初始文件处理


    一、初始文件处理(写文件)

    """
    第一步:  找到文件
    
    第二步:打开文件
    
    第三步:操作:先读后写
    
    第四步:关闭
    """
    f = open("学习","w",encoding="utf-8")          #f是文件操作符 文件句柄  文件操作对象
    
    # f2 = open("学习2","w",encoding="utf-8")
    # f2.close()
    # open打开文件是依赖操作系统提供的途径
    # 操作系统有自己的编码,open在打开文件的时候默认使用的是操作系统的编码
    # eg:win10之前用的GBK  mac、Linux使用的是utf-8
    f.write("hello,world
    ")        #"
    "是Python语法的换行符
    f.write("123456")
    f.write("00090900")             #如果在写文件的时候我们需要写数字也必须把数值转换成字符串
    f.write("
    assfffghghgdfgf")   #"
    "换行符放前边也可以
    f.write("
    你好,世界")           #凡是涉及到储存读写,字符集用utf-8
    f.write("
    天气不错")
    
    # print(f.writable())        #判断文件是否可写
    # print(f.readable())      #判断文件是否可读
    
    f.close()
    
    # 找到文件详解:
    #            文件与Py的执行文件如果是在相同路径下,直接用文件的名字就可以打开
    #             文件与Py的执行文件如果是不在相同路径下,用绝对路径找到文件,文件的路径需要用取消转译的方式来表示:
    #                        方法一(\):'C:\Users\Administrator\Desktop\s1_tmp.txt'
    #                        方法二(r''):r'C:UsersAdministratorDesktops1_tmp.txt'
    # f = open(r'C:UsersAdministratorDesktops1_tmp.txt','w',encoding='utf-8')
    # f.write("哈哈哈哈")
    # f.close()
    
    # 关闭文件详解:
    #               操作系统级别的关闭文件资源:f.close()             必须写
    #               del f  主动释放一个Python程序内存中的变量         可用可不用  

    二、初始文件处理(读文件)

    #第一步:打开文件
    # f = open('学习','r',encoding='utf-8')    两种方法打开文件都可
    f = open('学习',encoding='utf-8')
    #1.读文件的第一种方式:read方法,用read方法会一次性读出文件所以内容
    # content = f.read()
    # print("read:",content)
    # 2.读文件的第二种方式:读一部分内容:用read(n),指定读取n个单位
                        # print(f.read(11))
    #3.读文件的第三种方式:  f.readline()     是按照行读,每次执行就会往下读一行
                            #.strip()         是去掉空格、制表符、换行符
    # content = f.readline()
    # print(content)
    # print("readline:",content.strip())
                        # content2 = f.readline()
                        # print(content2.strip())
                        # content3 = f.readline()
                        # print(content3.strip())
    #4.读文件的第四种方式:   .readlines() ,返回的是列表, 将文件中的每一行作为列表中的每一项返回一个列表
    # content = f.readlines()
    # print("readlines:",content)
    
    
    #第二步:读取文件:  5、读:这是最常用的方法
    for l in f:
        print(l.strip())
    
    # 第三步:关闭文件
    f.close()
    

      

    三、.strip()

    '''
    f = open('shoplist',encoding='utf-8')
    
    
    i = []
    for l in f:
        if l.strip():
            line = l.strip()
            goods_lst = line.split()
            goods_dict = {"name": None, "价格": None}
            goods_dict['name']=goods_lst[0]
            goods_dict['价格']=goods_lst[1]
            i.append(goods_dict)
    print(i)
    f.close()
    '''
    
    
    '''
    #去除多层空格、制表符、换行符
    for i in f:
        if i.strip():                    #如果成立代表有内容 只显示有内容的行
            print(i.strip())                
    '''
    

      

    四、打开文件的几种模式

    #b: 图片、音乐、视频等任何文件
    # 传输:上传、下载
    # 网络编程
    '''
    f = open('学习','rb')
    content = f.read()
    print(content)
    f.close()
    '''
    
    #追加可读     极少用
    
    
    # f = open('shoplist','a+',encoding='utf-8')
    #
    # # f.write("
    computer 6000 5")
    # # f.write("
    coke 120 5")
    # # f.write("
    perpie 333 5")
    # print(f.readable())
    # f.close()
    
    #r+   可读可写
    #  1.先读后写  写是追写
    #   2.先写后读  从头开始写    (会从头开始覆盖)
    # f = open('学习','r+',encoding="utf-8")
    # # line = f.readline()
    # # print(line)
    # f.write("
    0000000000000000000000000000")
    # f.close()
    
    #w+   可写可读 :一上来文件就清空 ,
    # 1、尽管可读,但是读出来的内容是新写入的内容
    #  2、 他的光标是在最后的  需要主动移动他的光标才可读
    # f = open('学习','w+',encoding="utf-8")
    # f.write("
    ABC
    ")
    # f.write("哈哈哈")
    #
    # f.seek(0)               # seek()  是指针  就是光标的位置
    # print(f.read())
    # f.close()
    
    
    #a+    追加可读
    # f = open('学习','a+',encoding="utf-8")
    # f.write("
    娃哈哈")
    # f.seek(0)
    # print(f.read())
    # f.close()
    
    #  一般情况下:文件操作,要么读  要么写;  很少会用到读写  写读同时用的
    # 常用的:
    #     r w a
    #    rb  wb  ab    不需要指定编码
    
    
    f = open('学习','rb')
    content = f.read()
    
    f.close()
    print(content)
    f2 = open('学习2','wb')
    f2.write(content)
    f2.close()
    

      

    五、文件内的光标移动(.seek()   .tell())

    f = open('学习','r+',encoding='utf-8')
    # seek 光标移动到第几个字节的位置
    # f.seek(0)                           #移动到最开始
    # f.seek(0,2)                             #这个是移动到最末尾
    # f.truncate(5)                           #从文件开始的位置只保留指定字节的内容
    f.write("中华人民共和国合同法规定")
    # content = f.readline()
    
    # print(content.strip())
    # print(f.tell())                          #tell()  告诉我们当前光标所在位置
    # print(f.seek(4))                            #光标移动到三个字节的地方
    
    content = f.read(1)   #读一个字符
    print('***',content,'***')
    content = f.readline()
    print(content.strip())
    print(f.tell())
    
    
    f.close()
    

      

    六、修改文件

    '''
    #文件的修改
    #1.创建一个新文件
    f2 = open('原文件.bak','w',encoding='utf-8')
    
    #2.把原来的文件中的内容读出来
    f = open('原文件',encoding='utf-8')
    old_content = f.read()                 #原来的内容
    
    #3.操作读出来的字符串,把字符串中的内容替换掉
    new_content = old_content.replace("新","原来")
    #4.把替换之后的内容写到新文件里
    f2.write(new_content)
    f.close()
    f2.close()
    #5.删除原文件,新文件重命名成源文件的名字
    import os               #引入os模块
    os.remove("原文件")    #删除文件
    os.rename('原文件.bak','原文件')          #重命名    执行的是replace("老内容","新内容")
    '''
    '''
    # 创建新文件
    f2 = open('原文件.bak','w',encoding='utf-8')
    f = open('原文件',encoding='utf-8')
    for i in f:
        new_content = i.replace('原来','新')
        f2.write(new_content)
    f.close()
    f2.close()
    import os
    os.remove("原文件")
    os.rename('原文件.bak','原文件')
    '''
    
    '''
    #进阶例子
    #1.创建一个新文件
    f2 = open('原文件.bak','w',encoding='utf-8')
    #2.把原来的文件中的内容读出来
    f = open('原文件',encoding='utf-8')
    count = 0
    for line in f:
        if '原来' in line and count == 0:
            new_line = line.replace('原来','新')
            f2.write(new_line)
            count = 1
        else:
            f2.write(line)
    f.close()
    f2.close()
    import os
    os.remove('原文件')
    os.rename('原文件.bak','原文件')
    '''
    
    # #with 操作文件  最常用方法之一
    # with open('原文件',encoding='utf-8') as f:
    #     # content = f.read()
    #     # print(content)
    #     for line in f:
    #         if line.strip():
    #             print(line.strip())
    
    
    
    
    # with open('原文件',encoding='utf-8') as f,open('原文件.bak','w',encoding='utf-8') as f1:
    #     for line in f:
    #         new_line = line.replace('原来','新')
    #         f1.write(new_line)
    # import os
    # os.remove('原文件')
    # os.rename('原文件.bak','原文件')
    
    '''
    with open('原文件',encoding='utf-8') as f,open('原文件.bak','w',encoding='utf-8') as f1:
        for i in f:
            new_content = i.replace('新','原来')
            f1.write(new_content)
    import os
    os.remove('原文件')
    os.rename('原文件.bak','原文件')
    '''
    
    #修改文件
        #read()
        #for循环的形式逐行修改
        #只修改一行的内容,其他不变 —— 扩展例子
    #with语句 == 文件的打开和关闭
        #根据个人喜好
    

      

  • 相关阅读:
    今天看到的一些好文语句摘录
    laravel5 怎么获取数组形式的数据
    laravel5.4将excel表格中的信息导入到数据库中
    phpmax_execution_time
    laravel 5.4 导出excel表格
    使用php函数ini_set()重新设置某个配置的设置值
    艾伟_转载:VS.NET 2010 新功能 [整理] 狼人:
    艾伟_转载:[一步一步MVC]第五回:让TagBuilder丰富你的HtmlHelper 狼人:
    艾伟_转载:.NET 4.0中数组的新增功能 狼人:
    艾伟_转载:一个简单的 Generic Factory 类 狼人:
  • 原文地址:https://www.cnblogs.com/mainstream/p/11000200.html
Copyright © 2020-2023  润新知