zoukankan      html  css  js  c++  java
  • python3基础笔记(二):文件操作、json操作

    一、文件操作:

    基本操作:

    f=open('a.txt',encoding='utf-8') #默认不写就是只读模式,有汉字要加utf-8(写文件路径时加个r防止被转译,例如r'c:user)
    f.readlines() #把文件所有的内容都读出来,放到list里面
    f.readline() #每次指读一行,
    f.read() #读所有内容
    f.close()#关闭文件
    f.write('123 ') #只能写字符串
    f.writelines([12,34]) #只要是循环的都可以写,可以写列表
    f.tell() #获取当前指针的位置
    f.seek(0) #把文件指针移到某位置,0表示最前面
    f.truncate() #清空文件内容
    f.fulsh() #写入文件后,刷新缓冲区立即把数据写到磁盘里
    #使用with方式打开文件就不需要自己关文件了
    with open('a.txt') as f:
    #打开多个文件中间用,连接
    with open('a.txt') as f,open('a2.txt','w',encoding='utf-8') as f2:

    文件操作的几种模式: 

    名称    模式 说明
    r 能读,不能写,打开不存在的文件会报错
    w 能写,不能读,写的时候会清空以前的内容
    a 追加 能写,不能读,写时不会清空以前的内容,如果文件不存在会创建一个新的文件
    r+ 读写模式 能读能写,打开不存在的文件会报错
    w+ 写读模式 能读能写,打开文件的时候会清空以前的内容
    a+ 追加读模式 能读能写,文件指针在最末尾,打开文件时不会清空以前的文件,

    读取大文件时高效的方法:

    用read()和readlines()方法操作文件的话会非常卡,我们用一个高效的方法,每次读取一行释放一行:

    f=open('file.txt',encoding='utf-8')
    for line in f:
    print('每一行的内容:',line)

    修改文件:

    有2种方法,第一种是直接修改,修改后清空原有内容,再把修改后的内容写到文件里。第二种是打开2文件,把修改的内容写到一个新的文件里

    第一种:

    f=open('a.txt','a+',encoding='utf-8')
    f.seek(0)
    result=f.read()
    new_result=result.replace('abc','ABC')
    f.seek(0)
    f.truncate() #清空文件内容
    f.write(new_result)
    f.close()

    第二种:

    import os
    f1=open('a.txt',encoding='utf-8')
    f2=open('a2.txt','w',encoding='utf-8')
    for line in f1: #循环a.txt的每一行
    new_line=line.replace('1','一') #将1替换成一
    f2.write(new_line)
    f1.close()
    f2.close()
    os.remove('a.txt')
    os.rename('a2.txt','a.txt')

    二、Json操作

    json串就是字符串,python中json串只能是双引号,文件中写入的内容只能是字符串。

    1、json.dumps()和json.loads()可将转换的内容存到文件或数据库里

    d={'name':'abc'}
    import json
    json_str=json.dumps(d) #把字典/list转换成字符串(json)
    print(json_str)

    json_str2='{"name": "abc"}'
    dic=json.loads(json_str2) #把字符串(json)转换成字典
    print(dic)

    2、只针对文件操作的json.dump()和json.load()

    ensure_ascii=False  可将json中的汉字显示出来
    #将json串转换成字符串,写进文件
    f=open('tata.json','w',encoding='utf-8')
    json.dump(d,f,ensure_ascii=False,indent=4)

    #将读出来的json串转成字典(load方法可自动读文件)
    f=open('tata.json',encoding='utf-8')
    dic=json.load(f)
    print(dic)
    
    
    
  • 相关阅读:
    github上传本地项目
    vue.js form表单提交
    vue.js 数据交互 ajax
    锐浪报表字段分割
    前台与后台的数据交互(node.js与mysql)
    canvas标签__线段(新手随笔)
    canvas标签—矩形(新手随笔)
    项目显示页面思路(新手随笔)
    jQuery 属性(新手学习随笔)
    node.js 创建第一个应用
  • 原文地址:https://www.cnblogs.com/tata-learning/p/11575321.html
Copyright © 2011-2022 走看看