【Python自学记】9.文件操作

Python 文件处理

  • 读写文件
    • 打开文件

      open函数打开文件,返回文件对象。open 函数打开文件三种常用模式:

      • 只读模式,使用r表示,用于读取文件内容,不能向文件中写入数据
      • 只写模式,使用w表示,用于将数据覆盖写入文件中
      • 追加模式,使用a表示,用于将数据追加写入文件的末尾

      注:打开一个不存在的文件时,只读模式会报不存在文件异常,只写和追加模式都会创建一个写文件

      # 打开不存在的文件
      f = open('test.txt','r') # 报错:FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'
      f = open('test.txt','w') #创建文件
      f = open('test.txt','a') #创建文件
      
      
    • 写文件

      • write()方法:写入文件的内容不会自动换行,且调用一次只能将一个字符串写入文件

        # 写入数据到文件
        # 第一次
        f = open('test.txt','w')
        f.write('hello')
        f.write('world')
        f.write('!')
        
        # 第二次(覆盖第一次写入数据)
        f = open('test.txt','w')
        f.write('你')
        f.write('好')
        
        # 使用追加
        f = open('test.txt','a')
        f.write('你')
        f.write('好')
        
        # 写入换行,使用换行符
        f = open('test.txt','w')
        f.write('hello\n')
        f.write('world\n')
        f.write('!\n')
        
      • writelines()方法:可以将一个序列中的多个字符串一次写入文件中

        # 使用writelines()函数,调一次写入
        f = open('test.txt','w')
        f.writelines(['hello\n','world\n','!\n'])
        
      • close()方法:当使用完一些资源,要对其资源释放或者关闭,避免资源浪费

        # 使用close()函数关闭文件
        f =open('test.txt','w',encoding='utf-8')
        f.writelines(['hello\n','world\n','!\n'])
        f.close()
        
    • 文件安全打开

      使用with关键字和open函数打开文件,当文件操作完后会自动调close()方法

      # 使用with关键字安全打开文件
      with open('test.txt','w',encoding='utf-8') as f:
          f.writelines(['hello\n','world\n','!\n'])
      
    • 读文件

      • read()方法:可以一次性从文件中读取所有文件内容

        # read()函数读文件
        with open('test.txt','r',encoding='utf-8') as f:
            data = f.read()
            print(data)
        
      • readlines()方法:可以按照行的方式把文件中的内容一次全部读取出来,返回一个列表

        # readlines()函数读文件
        with open('test.txt','r',encoding='utf-8') as f:
            datas = f.readlines()
            print(datas)
            for data in datas:
                print(data,end='') # end='' 取消print函数换行打印
        
  • 文件管理

    文件操作时,不只是有读取和写入操作,还有删除文件、文件重命名、创建文件夹等

    • rename函数:用于对文件或者文件夹重命名,文件不存在时会报文件不存在异常

      # 文件重命名
      import os
      os.rename('test.txt','测试.txt')
      
    • remove函数:用于删除指定文件

      # 删除指定文件
      import os
      os.remove('测试.txt')
      
    • mkdir函数:用于在指定路径下创建文件夹

      # 创建文件夹
      import os
      os.mkdir('test') #当前文件夹下
      
    • getcwd函数:用于获取程序运行的绝对路径

      # 获取程序运行绝对路径
      import os
      print(os.getcwd())
      
    • listdir函数:用于获取指定路径下的文件列表,返回一个列表

      # 获取指定路径下的文件列表
      import os
      print(os.listdir('./'))
      
    • rmdir函数:用于删除指定路径下的空文件夹

      # 删除指定路径文件夹,(非空文件夹删除会报错)
      import os
      os.rmdir('test')
      
  • JSON文件操作

    JSON中的数据类型与Python中的数据类型会有一些差异:1.python中的元组和列表在JSON中都是以列表形式存在;2.python中的布尔类型True和False在JSON中会转为写true和false;3.python中的空类型None在JSON中会转为null。

    json模块常用几个函数:

    • dumps函数:将Python数据类型转为JSON字符串

      # dumps函数
      import json
      user_info={'name':'zhangsan','age':18,'sex':None,'study':['java','python'],'vip':False}
      json_str = json.dumps(user_info)
      print(json_str)
      
    • loads函数:将JSON字符串转为Python的数据类型

      # loads函数
      import json
      json_str = '{"name": "zhangsan", "age": 18, "sex": null, "study": ["java", "python"], "vip": false}'
      json_obj=json.loads(json_str)
      print(json_obj)
      
    • dump函数:将Python数据类型转为JSON字符串,并写入JSON文件

      # dump函数
      import json
      json_str = '{"name": "zhangsan", "age": 18, "sex": null, "study": ["java", "python"], "vip": false}'
      json_obj=json.loads(json_str)
      with open('test.json','w') as f:
          json.dump(json_obj,f)
      
    • load函数:从JSON文件读取数据,并将JSON字符串转为Python数据类型

      # load函数
      import json
      with open('test.json','r') as f:
          json_obj = json.load(f)
          print(json_obj)
      
  • CSV文件操作

    CSV文件内容默认使用逗号分隔,可以使用Excel打开;CSV文件是一种文本文件,可以使用其他文本编辑器打开;CSV文件内的数据没有类型,所有数据都是字符串

    csv模块常用几个函数:

    • 写入csv文件

      • writerow函数:一次写入一行数据

        # writerow写入csv文件
        import csv
        data = [['name', 'age'], ['张三', 18], ['李四', 20], ['王五', 25]]
        with open('test.csv', 'w', encoding='utf-8') as f:
            writer = csv.writer(f)
            for row in data:
                writer.writerow(row)
        
      • writerows函数:一次写入多行数据

        # writerows写入csv文件
        import csv
        data = [['name', 'age'], ['张三', 18], ['李四', 20], ['王五', 25]]
        with open('./test.csv','w',encoding='utf-8') as f:
            writer = csv.writer(f)
            writer.writerows(data)
        
    • 读csv文件

      • reader方法:根据打开的文件对象返回一个可迭代对象,然后遍历对象读取CSV文件每一行数据

        # 读取csv文件内容
        import csv
        with open('test.csv','r',encoding='utf-8') as f:
            w = csv.reader(f)
            for row in w:
                print(row)
        

  • 当才华还配不上野心,就静下来学习
  • blog地址:hangzhi.site
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值